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

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

Linda Hamilton
リリース: 2024-12-06 20:24:15
オリジナル
425 人が閲覧しました

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

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