首页 >数据库 >mysql教程 >LAST_INSERT_ID() 在 MySQL 中插入多条记录时如何表现?

LAST_INSERT_ID() 在 MySQL 中插入多条记录时如何表现?

Barbara Streisand
Barbara Streisand原创
2024-11-11 13:05:03509浏览

How Does LAST_INSERT_ID() Behave with Multiple Record Inserts in MySQL?

理解 LAST_INSERT_ID() 多记录插入的行为

在 MySQL 中处理多记录插入时,必须理解 LAST_INSERT_ID() 的行为LAST_INSERT_ID() 函数。与单记录插入不同,LAST_INSERT_ID() 在与多记录插入语句一起使用时表现出独特的行为。

预期行为

直观上,人们可能期望 LAST_INSERT_ID( ) 函数返回多记录插入的最后插入的 ID。然而,事实并非如此。

实际行为

如 MySQL 文档中所述,LAST_INSERT_ID() 将仅返回为 生成的 ID row 插入多记录插入语句中。这是故意为了在不同服务器上轻松复制相同的语句。

例如,考虑以下多记录插入语句:

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

即使它插入了三行, LAST_INSERT_ID() 将返回“William”的 ID,因为它代表第一个插入的记录。

对代码的影响

此行为会对您的代码产生影响。如果您依靠 LAST_INSERT_ID() 来捕获多记录插入中所有插入记录的 ID,则您将仅获得第一条记录的 ID。为了准确检索所有插入记录的 ID,您可以将 RETURNING 子句与 INSERT 语句结合使用,或者考虑其他方法,例如使用循环逐条插入记录。

以上是LAST_INSERT_ID() 在 MySQL 中插入多条记录时如何表现?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn