我有一个电子邮件表。
自动递增 ID 的最后一条记录是 3780,这是一条合法记录。我现在插入的任何新记录都被插入到那里。
但是,在我的日志中我偶尔会遇到:
Query FAIL: INSERT INTO mail.messages (timestamp_queue) VALUES (:time);
Array
(
[0] => 23000
[1] => 1062
[2] => Duplicate entry '4294967295' for key 1
)
不知何故,自动增量跳到了 4294967295 的 INT 最大值
为什么在上帝的绿色地球上会跳得这么高?我没有带有 id 字段的插入。
该表的显示状态,Auto_increment 表现在显示为:4294967296
怎么会发生这种事?我意识到 id 字段也许应该是一个大整数,但我担心的是这个东西会以某种方式跳回来。
乔希
编辑:更新
mysql版本5.0.45 red hat打补丁
因为我将 id 设置为 BIGINT,最后几个 id 看起来像:
3777
3778
3779
3780
4294967295
4294967296
4294967297
4294967298
4294967299
4294967300
如您所见,它们是递增的,没有间隙(到目前为止)。太奇怪了。
最佳答案
我对完全相同的号码也有同样的问题。我的问题是,当我将它更改为 bigint(20)
时,我在 int(10)
上拥有该字段,它解决了我的问题。
如果其他人也有这个问题。首先检查您的字段大小。 :)
关于php - mySQL自增问题: Duplicate entry '4294967295' for key 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548003/