2010-08-03 63 views
1

可以在插入查询中使用LAST_INSERT_ID()吗?在多行插入中使用LAST_INSERT_ID()

INSERT INTO mytable (col1, col2) VALUES ('val1', null), ('val2', LAST_INSERT_ID()) 

尝试上述LAST_INSERT_ID()返回0,只是看我是否可以组合查询。

回答

3

从我发现它不会工作,因为LAST_INSERT_ID没有一个值,直到整个陈述完成。

0

我认为这个解释得很好(http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id):

“当前执行语句不会影响LAST_INSERT_ID()的值假设您使用一条语句生成AUTO_INCREMENT值,然后在多行INSERT语句中引用LAST_INSERT_ID(),该语句将行插入具有自己的AUTO_INCREMENT列的表中。 LAST_INSERT_ID()的值将在第二条语句中保持稳定;其第二行和后续行的值不受前面行插入的影响(但是,如果将引用混合到LAST_INSERT_ID()和LAST_INSERT_ID(expr),则效果为未定义。)“