我正在使用mysql连接器C ++。我的表中有一个auto_increament列,我想在执行插入操作时获取插入ID。有人知道怎么做吗?感谢。
我的代码类似于:
conn->setAutoCommit(0);
pstmt.reset(conn->prepareStatement(insertStr.c_str()));
int updateCount = pstmt->executeUpdate();
conn->commit();
答案 0 :(得分:3)
如果您使用的库的API没有提供检索last_insert_id的方法(这似乎是C ++连接器的情况),您可以随时进行查询
SELECT LAST_INSERT_ID();
它为您提供“表示由于最近执行的INSERT语句而成功为AUTO_INCREMENT列插入的第一个自动生成的值的值。” See here for the explanation of MySQL's documentation
更新:
我发现来自用户的this post,如果你不在你的领域使用auto_increment就可以使用
SELECT @@ identity AS id;