首页 > 数据库 > mysql教程 > LAST_INSERT_ID() 在 MySQL 的多行 INSERT 语句中表现如何?

LAST_INSERT_ID() 在 MySQL 的多行 INSERT 语句中表现如何?

Linda Hamilton
发布: 2024-11-14 20:14:02
原创
802 人浏览过

How Does LAST_INSERT_ID() Behave in Multi-Row INSERT Statements in MySQL?

在 MySQL 中使用 LAST_INSERT_ID() 返回多行 INSERT 语句中的最后一个插入 ID

在 MySQL 中执行多条记录插入时,了解LAST_INSERT_ID() 函数的行为变得至关重要。与提供插入行 ID 的单行插入不同,LAST_INSERT_ID() 对于多行 INSERT 语句的行为有所不同。

例如,考虑以下查询:

INSERT INTO people (name, age)
VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
登录后复制

执行此语句后,人们可能期望 LAST_INSERT_ID() 函数返回最后插入的行的 ID (3)。然而,LAST_INSERT_ID() 的行为与此期望不同。

LAST_INSERT_ID() 返回第一个插入 ID

在多个记录 INSERT 语句的上下文中,LAST_INSERT_ID( ) 仅返回为第一个插入行生成的 ID。此行为明确记录在 MySQL 的文档中:

Important
If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only.
登录后复制

此设计决策确保可以在另一台服务器上轻松地复制相同的 INSERT 语句,而不会出现任何问题。通过使用第一个插入行的 ID,重现预期的行为变得简单。

对代码设计的影响

在设计依赖于用于多行插入的 LAST_INSERT_ID() 函数。在这种情况下,开发人员应避免依赖 LAST_INSERT_ID() 来确定插入行的具体 ID。应考虑在多行插入中跟踪或访问行 ID 的替代方法。

以上是LAST_INSERT_ID() 在 MySQL 的多行 INSERT 语句中表现如何?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板