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

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

DDD
リリース: 2024-12-28 09:34:09
オリジナル
634 人が閲覧しました

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

MySQL での ID 取得による一括挿入

MySQL テーブルへの複数の行の挿入と新しい ID の取得は、一般的な要件ですが、そうでない場合もあります。実装することがすぐに明らかになります。このドキュメントでは、特に InnoDB ストレージ エンジンを使用する場合に、MySQL の LAST_INSERT_ID() 関数と ROW_COUNT() 関数を使用してこれを実現する方法について説明します。

InnoDB のシーケンシャル ID 生成

を利用する場合MySQL を使用した InnoDB ストレージ エンジンでは、バルク挿入により AUTO INCREMENT ID のシーケンシャルな割り当てが維持されます。 innodb_autoinc_lock_mode が 0 (従来型) または 1 (連続) に設定されていること。

ID の配列の取得

一括挿入後に ID の配列を取得するには、次の手順に従ってください:

  1. 一括実行クエリを挿入します。
  2. LAST_INSERT_ID() を使用して最初の ID を取得します。
  3. 最初の ID に ROW_COUNT()-1 を加算して最後の ID を計算します。
  4. 配列を生成します最初のIDから最後のIDまで

例:

-- Insert bulk rows
INSERT INTO table_name (column1, column2) VALUES (val1, val2), (val3, val4), (val5, val6);

-- Get the first ID
SET @first_id = LAST_INSERT_ID();

-- Get the number of rows inserted
SET @num_rows = ROW_COUNT();

-- Create an array of IDs
SET @ids = ARRAY();

-- Populate the array
WHILE (@i < @num_rows) DO
  SET @ids[@i] = @first_id + @i;
  SET @i = @i + 1;
END WHILE;
ログイン後にコピー

この手法は、一括挿入後に新しく生成された ID の配列を効率的に提供し、さらなる処理や内部での使用を可能にします。アプリケーションロジック。

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

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