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

Linda Hamilton
リリース: 2024-11-25 08:53:10
オリジナル
177 人が閲覧しました

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

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

INSERT ステートメントは 1 回の操作で複数のレコードを挿入できるため、データベースの効率が向上します。修正。ただし、ilyen シナリオにおける LAST_INSERT_ID() の動作は、単一レコード挿入の操作とは異なります。

MySQL ドキュメントで強調されているように、LAST_INSERT_ID() は 最初 複数レコードの INSERT ステートメントに挿入された行。この動作は、このようなステートメントを他のサーバー上で再現しやすくし、分散環境でも一貫性を確保するように設計されています。

次の例を考えてみましょう:

INSERT INTO people (name,age)
VALUES ('William',25), ('Bart',15), ('Mary',12);
ログイン後にコピー
このステートメントを実行した後、LAST_INSERT_ID() は挿入された最初の行に対して生成された値を取得します。 (「ウィリアム」、25)。これは、最後に挿入された行に対応する期待値 3 とは対照的です。

実際的な意味

生成された値を適切に処理するには、この動作を理解することが重要です。複数レコードの INSERT ステートメントを使用するコード内。このような場合、最後に挿入された ID を取得するために LAST_INSERT_ID() に依存することはお勧めできません。代わりに、影響を受ける行数を取得したり、自動インクリメント値を明示的に指定したりするなどの代替方法を、正確なレコード取得のために考慮する必要があります。

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

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