2
MySqlのLAST_INSERT_ID()関数は正しいことが保証されていますか?
列INSERTを持つテーブルに単一の行を作成するAUTO_INCREMENT場合、LAST_INSERT_ID()関数を使用して、AUTO_INCREMENTその行に格納されている新しい'ed値を返します。 多くのMicrosoft SQL Server開発者と管理者がSQL Server(SCOPE_IDENTITYおよび@@IDENTITY)の同等の機能に問題がないことに気付いていないことは間違いない。 MySQLドキュメントの状態を知っています: 生成されたIDは、接続ごとにサーバーで維持されます。これは、関数によって特定のクライアントに返される値が、そのクライアントによって列にAUTO_INCREMENT影響を与える最新のステートメントに対して生成される最初の値であることを意味します。他のクライアントが独自の値を生成しても、この値は他のクライアントの影響を受けません。この動作により、各クライアントは、他のクライアントのアクティビティを気にすることなく、ロックやトランザクションを必要とせずに独自のIDを取得できます。AUTO_INCREMENTAUTO_INCREMENT (ソース) さらに言えば: 複数のクライアントからLAST_INSERT_ID()and AUTO_INCREMENT列を同時に使用することは完全に有効です。 (ソース) LAST_INSERT_ID()正しい値を返さない原因となる既知のリスクやシナリオはありますか? CentOS 5.5 x64およびFedora 16 x64およびInnoDBエンジンでMySQL 5.5を使用しています。