MySQL插入 - 为每一行返回插入ID

时间:2015-05-06 19:04:19

标签: mysql cursor bulkinsert last-insert-id

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

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

我们假设table有一个主键。

有没有办法,像这样批处理插入,获取每一行的最后一个插入ID,并返回那些新的ID?我知道你传统上不能使用LAST_INSERT_ID()来做这件事,但我想知道我是否可以使用类似光标的东西来实现这个功能,也许是一个临时表来存储值,直到我返回它们。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

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.

所以你可以返回那个值并且:

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

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