ホームページ > データベース > mysql チュートリアル > MySQL での複数レコードの挿入で LAST_INSERT_ID() はどのように動作しますか?

MySQL での複数レコードの挿入で LAST_INSERT_ID() はどのように動作しますか?

Barbara Streisand
リリース: 2024-11-11 13:05:03
オリジナル
498 人が閲覧しました

How Does LAST_INSERT_ID() Behave with Multiple Record Inserts in MySQL?

複数のレコード挿入による LAST_INSERT_ID() の動作を理解する

MySQL で複数のレコードの挿入を扱う場合、その動作を理解することが不可欠です。 LAST_INSERT_ID() 関数。単一レコードの挿入とは異なり、LAST_INSERT_ID() は、複数レコードの挿入ステートメントで使用すると独特の動作を示します。

期待される動作

直感的には、LAST_INSERT_ID( ) 関数は、複数レコードの挿入に対して最後に挿入された ID を返します。ただし、これは当てはまりません。

実際の動作

MySQL ドキュメントに記載されているように、LAST_INSERT_ID() は、最初の ID に対してのみ生成された ID を返します。 row が複数レコードの挿入ステートメントに挿入されました。これは、異なるサーバー上で同じステートメントを簡単に再現できるようにするためのものです。

たとえば、次の複数レコードの挿入ステートメントを考えてみましょう。

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

たとえ 3 行を挿入しても、 LAST_INSERT_ID() は、最初に挿入されたレコードを表す「William」の ID を返します。

コードへの影響

この動作はコードに影響を与えます。 LAST_INSERT_ID() を使用して、複数レコードの挿入で挿入されたすべてのレコードの ID を取得する場合、最初のレコードの ID のみが取得されます。挿入されたすべてのレコードの ID を正確に取得するには、RETURNING 句を INSERT ステートメントと組み合わせて利用するか、ループを使用してレコードを 1 つずつ挿入するなどの代替アプローチを検討してください。

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

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