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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-25 08:53:10195ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。