MySQL 插入 - 对于每一行,return 插入 id

MySQL insert - for each row, return insert id

假设我有一组数据要插入。我将有一个看起来像这样的插页:

INSERT INTO `table` (`name`, `value`) VALUES('name1','value1'),('name2','value2')

我们假设 table 有一个主键。

有没有办法在像这样批量插入时,获取每一行的最后一个插入 ID,然后 return 那些新的 ID?我知道你不能用传统的 LAST_INSERT_ID() 来做到这一点,但我想知道我是否可以使用像游标这样的东西来实现这个功能,也许一个临时的 table 来存储值直到我 return他们。

任何帮助都会很棒。

https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

LAST_INSERT_ID() will return the first id from a multi row insert.

因此您可以 return 该值并且:

INSERT INTO `table1` (`name`, `value`) VALUES('name1','value1'),('name2','value2');

SET @firstid := LAST_INSERT_ID();
SELECT * from table1 where id>=@firstid;