gpt4 book ai didi

php - INSERT INTO 错误后的 LAST_INSERT_ID()

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:05 24 4
gpt4 key购买 nike

我对 LAST_INSERT_ID()(或 php 上的 mysql_insert_id)和带有两个参数的表(对于本例)有疑问。ID:自增值文本:varchar 唯一字段。

如果我有这个:

INSERT INTO field (text) VALUES ('a');  -> Insert OK
SELECT LAST_INSERT_ID(); -> ok, returns 1;
INSERT INTO field (text) VALUES ('a'); -> Insert Error (text field is UNIQUE)
INSERT INTO field (text) VALUES ('b'); -> Insert Ok
SELECT LAST_INSERT_ID(); -> ok, but returns 3, not 2

自增字段不相关,跳转2值。我尝试使用 START TRANSACTION 和 ROLLBACK 或 COMMIT,但我遇到了同样的问题(或者我没有正确执行)。

有什么想法吗?

谢谢。

最佳答案

不,增量 ID 并不总是 MAX+1,如果您按顺序删除较早的记录,它们也不会重新排列。如果您的增量 ID 序列中有间隙,这无关紧要:如果您正确使用增量 ID 作为唯一标识符,那么这不是问题。如果您依赖于连续序列,那么您就没有正确设计数据库。

关于php - INSERT INTO 错误后的 LAST_INSERT_ID(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com