4

我有一个包含大约 2,000,000 个条目的 mysql 表,主键是自动递增的。然而,在某一时刻,自动增量值突然从原来的值(大约 2,000,000)跃升至最大整数值(2,147,483,647)。不用说,所有后续插入该表的操作都失败了。当我注意到它时,我将主键类型从 int 更改为 bigint,所以它现在可以正常工作。

所以我的问题是,为什么会发生这种情况?是否有任何预防措施可以避免将来发生这种情况?

4

2 回答 2

7

插入失败仍会导致自动增量列增加。如果您的程序陷入无限循环的失败,可能会导致达到限制。

也可以通过编程将自动增量设置为特定值。

ALTER TABLE yourtable AUTO_INCREMENT = 12345;
于 2012-04-06T10:12:07.030 回答
0

造成这种情况的一个原因可能是——

如果您在自动增量栏中输入了随机数,则可能是因为auto_increment只能按升序排列。因此,当您插入接近最大限制的数字时,它很快就达到了最大限制,您无法输入其他任何内容。

于 2012-04-06T11:18:40.713 回答