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中文网其他相关文章!