ホームページ > データベース > mysql チュートリアル > MySQL に複数の行を挿入した後に ID を取得するにはどうすればよいですか?

MySQL に複数の行を挿入した後に ID を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-24 10:57:10
オリジナル
394 人が閲覧しました

How to Retrieve IDs After Inserting Multiple Rows in MySQL?

MySQL での ID 取得による複数の行の挿入

MySQL テーブルにデータを挿入すると、通常、LAST_INSERT_ID を介して新しく作成された行の ID が返されます。 () 関数。ただし、複数の行を挿入する場合、ID の配列の取得が困難になることがあります。

InnoDB による一括挿入

最近の MySQL バージョンを使用している InnoDB テーブルの場合、 LAST_INSERT_ID() と ROW_COUNT() を組み合わせて、挿入された ID を取得します。 InnoDB は、innodb_autoinc_lock_mode 設定が 0 (従来型) または 1 (連続) の場合、一括挿入に対して連続した自動インクリメント ID を提供します。

ID 範囲の取得

一括挿入を想定声明は行われました実行:

INSERT INTO table (`column1`, `column2`) VALUES ..., ..., ...
ログイン後にコピー

次の式を使用して、新しく挿入された行の ID の範囲を計算できます:

INSERTED_ID_RANGE = [LAST_INSERT_ID(), LAST_INSERT_ID() + ROW_COUNT() - 1]
ログイン後にコピー

次の一括挿入を考えてみましょう:

INSERT INTO table (`column1`, `column2`)
VALUES (1, 'value 1'), (2, 'value 2'), (3, 'value 3');
ログイン後にコピー

挿入後の LAST_INSERT_ID() が 5 の場合、挿入される ID 範囲は次のようになります:

[5, 5 + ROW_COUNT() - 1] = [5, 5 + 3 - 1] = [5, 7]
ログイン後にコピー

したがって、挿入される ID の配列は [5, 6, 7] になります。

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

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