MySQL の複数レコードの INSERT ステートメントで LAST_INSERT_ID() はどのように動作しますか?

Mary-Kate Olsen
リリース: 2024-11-17 11:48:01
オリジナル
497 人が閲覧しました

How does LAST_INSERT_ID() behave with multiple record INSERT statements in MySQL?

複数のレコード INSERT ステートメントでの LAST_INSERT_ID() の動作

単一の INSERT ステートメントで複数のレコードを MySQL テーブルに挿入する場合、LAST_INSERT_ID()通常、最後ではなく最初に挿入されたレコードの ID を返します。

MySQL ドキュメントで確認されているように、この動作により、INSERT ステートメントを他のサーバーで正確に再現できます。後続のレコードの ID 値は、異なるデータベース サーバー間で一貫して割り当てることができないため返されません。

例:

次の INSERT ステートメントを考えてみましょう:

INSERT INTO people (name, age)
VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
ログイン後にコピー

このステートメントを実行すると、LAST_INSERT_ID() は最初に挿入されたレコード (William) の ID である 1 を返します。これは予期された動作であり、意図しない結果が生じることなくステートメントを複製できることが保証されます。

影響:

複数のレコードの挿入を処理するコードでは、次の点に注意することが重要です。この動作を考慮し、それに応じて ID 値を処理します。たとえば、挿入されたすべてのレコードの ID を取得する必要がある場合は、挿入された行数を返して ID を個別に取得するなど、別のアプローチを使用する必要がある場合があります。

以上がMySQL の複数レコードの INSERT ステートメントで LAST_INSERT_ID() はどのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート