1

複数の行を挿入するための構文を持つ INSERT があります。

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

MySQL 関数 LAST_INSERT_ID() を使用すると、生成された AUTO_INCREMENT 列の主キーを取得できますが、行 (1,2,3)、(4,5,6) AND (7,8,9) の主キーを取得するにはどうすればよいですか? 1 つの一意の SQL INSERT 命令に挿入されますか?

プログラミング言語は PHP 5.4.13 および MySQL Server 5.6.10 です。

4

2 に答える 2

2

生成された auto-inc 変数を複数取得する方法はありません。LAST_INSERT_ID() を呼び出すと、最後の INSERT によって生成された最初の値が返されます。

すべての値を取得するには、一度に 1 行ずつ挿入し、1 行ごとに LAST_INSERT_ID() を呼び出します。これによりオーバーヘッドが増加しますが、これが唯一の回避策です。

これは、バッチで多くの新しい id 値を生成するINSERT...SELECTまたは実行している場合に特に問題になります。LOAD DATA INFILE

複数のレコード INSERT ステートメントで使用される MySQL LAST_INSERT_ID()も参照してください。

于 2013-03-28T19:55:18.317 に答える