首页  >  文章  >  数据库  >  MySQL 中的“LAST_INSERT_ID()”如何处理多记录“INSERT”语句?

MySQL 中的“LAST_INSERT_ID()”如何处理多记录“INSERT”语句?

DDD
DDD原创
2024-11-17 10:45:04252浏览

How Does `LAST_INSERT_ID()` Work with Multiple-Record `INSERT` Statements in MySQL?

LAST_INSERT_ID() MySQL 中多记录 INSERT 语句的行为

MySQL 的 LAST_INSERT_ID() 函数检索为最后插入的行生成的 ID。与使用多记录 INSERT 语句相比,使用单记录 INSERT 语句时,此行为可能有所不同。

单记录 INSERT 语句

使用单记录 INSERT语句中,LAST_INSERT_ID() 按预期返回生成的 ID,对应于最后插入的记录。

多记录 INSERT 语句

但是,当使用多记录时INSERT 语句中,LAST_INSERT_ID() 返回与第一个插入行对应的 ID。此行为在 MySQL 文档中明确记录,强调它允许在另一台服务器上轻松重现相同的 INSERT 语句。

示例

考虑以下多记录 INSERT语句:

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

该语句执行后,LAST_INSERT_ID() 将返回 1,而不是 3,表示插入的第一条记录('William')生成的 ID。

推理

此行为可确保跨服务器的数据一致性。如果 LAST_INSERT_ID() 返回多记录语句中最后插入行的 ID,则 INSERT 语句在为同一行分配不同 ID 的其他服务器上将无法重现。

以上是MySQL 中的“LAST_INSERT_ID()”如何处理多记录“INSERT”语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

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