一尘不染

MySQL LAST_INSERT_ID()与多个记录INSERT语句一起使用

mysql

如果我通过执行单个记录插入的循环插入多个记录,则按预期返回的最后一个插入id是最后一个。但是,如果我执行多条记录插入语句:

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

假设上面的三个是插入表中的第一条记录。在插入语句之后,我希望最后一个插入ID返回3,但返回1。有关语句的第一个插入ID。

所以有人可以确认这是否是在LAST_INSERT_ID()多条记录INSERT语句的上下文中的正常行为。因此,我可以将代码作为基础。


阅读 410

收藏
2020-05-17

共1个答案

一尘不染

是。这种行为last_insert_id()在MySQL的文档记录

重要

如果您使用一条INSERT语句插入多行,则仅LAST_INSERT_ID()返回为第一行插入而生成的值。这样做的原因是使INSERT针对其他服务器轻松重现相同的语句成为可能。

2020-05-17