3

mysql コネクタ C++ を使用しています。テーブルに auto_increament 列があり、挿入アクションを実行するときに挿入 ID を取得したいと考えています。誰かがそれを取得する方法を知っていますか? ありがとう。

私のコードは次のようなものです:

conn->setAutoCommit(0);
pstmt.reset(conn->prepareStatement(insertStr.c_str()));

int updateCount = pstmt->executeUpdate();
conn->commit();
4

1 に答える 1

4

使用しているライブラリの API が last_insert_id を取得するメソッドを提供しない場合 (C++ コネクタの場合と思われます)、いつでもクエリを実行できます。

SELECT LAST_INSERT_ID();

これにより、「最後に実行された INSERT ステートメントの結果として、AUTO_INCREMENT 列に正常に挿入された最初の自動生成値を表す値」が得られます。MySQLのドキュメントの解説はこちら

アップデート:

フィールドでauto_incrementを使用しない場合は、使用できると言っているユーザーからこの投稿を見つけました

@@identity AS id を選択します。

于 2012-08-30T19:13:27.260 に答える