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 の配列を取得するには、次の手順に従ってください:
例:
-- 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 サイトの他の関連記事を参照してください。