MySQL で LAST_INSERT_ID() を使用して複数行の INSERT ステートメントで最後の挿入 ID を返す
MySQL で複数のレコードの挿入を実行するときの理解LAST_INSERT_ID() 関数の動作が重要になります。挿入された行の ID を提供する単一行の挿入とは異なり、LAST_INSERT_ID() は複数行の INSERT ステートメントでは動作が異なります。たとえば、次のクエリを考えてみましょう:INSERT INTO people (name, age) VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
LAST_INSERT_ID() 最初の挿入 ID を返します
複数レコードの INSERT ステートメントのコンテキストでは、LAST_INSERT_ID( ) は、最初に挿入された行に対してのみ生成された ID を返します。この動作は MySQL のドキュメントに明示的に記載されています:Important If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only.
コード設計への影響
この動作を理解することは、複数行を挿入するための LAST_INSERT_ID() 関数。開発者は、このようなシナリオで挿入された行の特定の ID を決定するために LAST_INSERT_ID() に依存しないようにする必要があります。複数行の挿入で行 ID を追跡またはアクセスするための代替アプローチを検討する必要があります。以上がMySQL の複数行 INSERT ステートメントで LAST_INSERT_ID() はどのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。