2011-01-09 78 views
32

如果我使用执行单个记录插入的循环插入多个记录,则返回的最后一个插入标识与预期的一样是最后一个。但是,如果我做了多条记录插入语句:MySQL LAST_INSERT_ID()与多个记录一起使用INSERT语句

INSERT INTO people (name,age) 
VALUES ('William',25), ('Bart',15), ('Mary',12); 

比方说,上述三个插入表中的第一条记录。在插入语句之后,我期待最后一个插入标识返回3,但它返回1.有问题的语句的第一个插入标识。

那么有人可以确认这是否是LAST_INSERT_ID()在多个记录INSERT语句的上下文中的正常行为。所以我可以基于它我的代码。

+0

您的表是否有自动增量ID? – 2011-01-09 02:44:28

+4

第二个插入ID很容易计算。只需在第一个记录后添加一个记录。 – dqhendricks 2011-01-09 03:42:18

回答

2

这种行为在man page为MySQL提及。它在评论中,但没有受到挑战,所以我猜这是预期的行为。