我正在使用 mysql 连接器 C++。我的表中有一个 auto_increament 列,我想在执行插入操作时获取插入 ID。有人知道如何得到它吗?谢谢。
我的代码是这样的:
conn->setAutoCommit(0);
pstmt.reset(conn->prepareStatement(insertStr.c_str()));
int updateCount = pstmt->executeUpdate();
conn->commit();
如果您使用的库的 API 没有提供检索 last_insert_id 的方法(这似乎是 C++ 连接器的情况),您可以随时进行查询
选择 LAST_INSERT_ID();
它为您提供“作为最近执行的 INSERT 语句的结果,成功插入 AUTO_INCREMENT 列的第一个自动生成值的值”。有关 MySQL 文档的说明,请参见此处
更新:
我从一个用户那里找到了这篇文章,他说如果你不在你的字段上使用 auto_increment 你可以使用
选择@@identity作为 id;