假设我要插入一组数据。我将有一个看起来像这样的插入:
INSERT INTO `table` (`name`, `value`) VALUES('name1','value1'),('name2','value2')
我们假设table
有一个主键。
有没有办法,像这样批处理插入,获取每一行的最后一个插入ID,并返回那些新的ID?我知道你传统上不能使用LAST_INSERT_ID()
来做这件事,但我想知道我是否可以使用类似光标的东西来实现这个功能,也许是一个临时表来存储值,直到我返回它们。
任何帮助都会很棒。
答案 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;