ホームページ >データベース >mysql チュートリアル >MySQL への一括挿入後に自動生成された ID を取得するにはどうすればよいですか?

MySQL への一括挿入後に自動生成された ID を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-06 20:24:15424ブラウズ

How to Retrieve Auto-Generated IDs After a Bulk Insert in MySQL?

MySQL で返された ID を使用した一括挿入

MySQL テーブルへの複数の行の挿入は一般的なタスクです。ただし、一括挿入後に新しく生成された ID を取得する必要がある場合は、標準の LAST_INSERT_ID() 関数では十分ではありません。

InnoDB ソリューション

テーブルの場合InnoDB ストレージ エンジン (ほとんどのワークロードに推奨される設定) を使用し、MySQL は LAST_INSERT_ID() を使用したソリューションを提供し、 ROW_COUNT() 関数。その仕組みは次のとおりです。

InnoDB では、innodb_autoinc_lock_mode が 0 (従来型) または 1 (連続型) に設定されている場合、AUTO INCREMENT を使用した一括挿入により連続番号が保証されます。これは、LAST_INSERT_ID() を使用して最初の ID を取得し、ROW_COUNT() - 1 を追加することで最後の ID を取得できることを意味します。

例:

INSERT INTO example_table (name) VALUES ('John'), ('Mary'), ('Bob');

-- Get first ID
SELECT LAST_INSERT_ID() AS first_id;

-- Get row count
SELECT ROW_COUNT() AS row_count;

-- Get last ID
SELECT LAST_INSERT_ID() + ROW_COUNT() - 1 AS last_id;

以上がMySQL への一括挿入後に自動生成された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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