php - mySQL自增问题: Duplicate entry '4294967295' for key 1

标签 php mysql pdo auto-increment mysql-error-1062

我有一个电子邮件表。

自动递增 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/

相关文章:

php - 尝试从 MySQL 数据库中调用 longblob 信息以进行文件输入控制

php - 具有现有值的 PDO 更新表?

PHP 到 AS400 连接通过来自浏览器的 ODBC/PDO 错误

php - joomla下执行的php从sql中检索多行数据

php - 在当前时间/日期上添加 1 小时到期

php - 查找两个 IPv4 地址之间的网络距离(不是地理距离)

php - 页面重定向后在 session_start() 上删除的 session 数据

php - foreach 循环不会生成唯一的列表项 ID

php - 单个字段上的 SQL 多个条件

php - 同一页面上具有相同变量的多个查询