当MySQL中的自动增量主键达到最大值时会发生什么

Fos*_*nce 7 mysql int primary-key auto-increment

我有自动增量,MySQL中的主键叫做ID,它是INT.随着我的应用程序的增长,我收到更多用户,他们正在制作更多条目.当我的INT达到最大值2 147 483 647时会发生什么?我可以切换到BIGINT吗?

Hal*_*oum 5

MySQL官方文件指出:

当列达到数据类型的上限时,下一次尝试生成序列号失败。如果可能,请使用 UNSIGNED 属性以允许更大的范围。

是的,您可以切换auto_increment值的类型。在这一点上,文档建议使用:

[...] AUTO_INCREMENT 列的最小整数数据类型,它足够大以容纳您需要的最大序列值。


Cri*_*ses 5

是的,您可以更改表并将其从 INT 更改为 BIGINT 没有问题。

此外,您可能需要将数据类型更改为 FK

  • +1 是的,值得一提的是,您应该在升级它们引用的 PK 之前 ** 更改 FK 数据类型。否则,您可能会创建子表无法引用的 PK 值。 (3认同)