よくある問題として、INSERT
を実行したときに自動生成される ID
の値をどのように取得するかという問題があります。ODBC
を使用する場合、以下のようなステートメントによって、自動生成される
ID を取得できます(auto
は
AUTO_INCREMENT
属性を持つフィールドとする)。
INSERT INTO foo (auto,text) VALUES(NULL,'text'); SELECT LAST_INSERT_ID();
自動生成された ID を他のテーブルに挿入するだけであれば、以下のようなステートメントを実行します。
INSERT INTO foo (auto,text) VALUES(NULL,'text'); INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text');
See 項11.1.12.3. 「最後に挿入したレコードの一意な ID はどのように取得するのか」。
一部の ODBC アプリケーション(少なくとも Delphi および Access)では、以下のクエリを使用して、新しく挿入されたレコードを検索できます。
SELECT * FROM tbl_name WHERE auto IS NULL;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.