MySQL 挿入クエリから新しいレコードの主キー ID を取得しますか? 質問する

MySQL 挿入クエリから新しいレコードの主キー ID を取得しますか? 質問する

テーブルの 1 つにMySQL を実行していて、テーブルにおよびに設定されているINSERT列があるとします。item_idautoincrementprimary key

新しく生成された主キーの値をitem_id同じクエリで出力するにはどうすればよいですか?

現在、ID を取得するために 2 番目のクエリを実行していますが、間違った結果が生成される可能性があることを考慮すると、これは良い方法とは言えません...

これが不可能な場合、正しい ID を取得するためのベスト プラクティスは何ですか?

ベストアンサー1

次の関数を使用する必要がありますLAST_INSERT_ID():http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

例えば:

INSERT INTO table_name (col1, col2,...) VALUES ('val1', 'val2'...);
SELECT LAST_INSERT_ID();

これにより、挿入PRIMARY KEYした最後の行の値が返されます。

生成された ID は、接続ごとにサーバー内で保持されます。つまり、関数によって特定のクライアントに返される値は、そのクライアントによってAUTO_INCREMENT 列に影響を与える最新のステートメントに対して生成された最初の AUTO_INCREMENT 値になります。

したがって、 によって返される値はLAST_INSERT_ID()ユーザーごとに異なり、他のユーザーがサーバー上で実行している可能性のある他のクエリの影響を受けません。

おすすめ記事