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

DDD
リリース: 2024-11-17 10:45:04
オリジナル
244 人が閲覧しました

How Does `LAST_INSERT_ID()` Work with Multiple-Record `INSERT` Statements in MySQL?

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

MySQL の LAST_INSERT_ID() 関数は、最後に挿入された行に対して生成された ID を取得します。この動作は、単一レコードの INSERT ステートメントを使用する場合と、複数レコードの INSERT ステートメントを使用する場合では異なる場合があります。

単一レコードの INSERT ステートメント

単一レコードの INSERT の場合ステートメントの場合、LAST_INSERT_ID() は、最後のレコードに対応する、期待どおりに生成された ID を返します。

複数レコードの INSERT ステートメント

ただし、複数レコードの INSERT ステートメントを使用する場合、LAST_INSERT_ID() は最初に挿入された行に対応する ID を返します。この動作は MySQL ドキュメントに明示的に記載されており、同じ INSERT ステートメントを別のサーバーで簡単に再現できることが強調されています。

次の複数レコードの INSERT を考えてみましょう。ステートメント:

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

このステートメントの実行後、 LAST_INSERT_ID() は、挿入された最初のレコード ('William') に対して生成された ID を示す 3 ではなく 1 を返します。

推論

この動作により、データの一貫性が保証されます。サーバー。 LAST_INSERT_ID() が複数レコード ステートメントで最後に挿入された行の ID を返した場合、同じ行に異なる ID を割り当てる他のサーバーでは INSERT ステートメントを再現できなくなります。

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

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