MySQL在自动递增ID溢出时会做什么?

ukdjmx9f  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(66)

我有一个使用MySQL作为数据库后端的django应用程序。它已经运行了几天了,我已经在一些表中达到了ID 5000。
我关心的是当我溢出数据类型时会发生什么。
有没有办法告诉自动增量在某个时候重新开始?我的数据非常不稳定,所以当我溢出ID时,不可能仍然使用ID 0或接近它的任何地方。

vaj7vani

vaj7vani1#

根据你是否使用无符号整数以及你运行的MySQL版本,你可能会有主键为负值的风险,或者(更糟糕的是)该行根本不会被插入并抛出错误。
也就是说,你可以很容易地在MySQL中使用ALTER命令来改变整数的大小/类型,以先发制人地阻止这种情况发生。INT作为主键的“标准”大小是INT(11),但绝大多数数据库应用程序不需要这么大的值。试试MEDIUMINT。
MEDIUMINT -有符号范围为-8388608到8388607。无符号范围为0到16777215
与...相比
INT或INTEGER -有符号范围为-2147483648至2147483647。无符号范围为0至4294967295
还有BIGINT,但老实说,如果你有一个超过20亿行的表,你可能会有比你的数据类型更大的可伸缩性问题要担心:)

相关问题