[MySQL] 数据库自增ID用完了会怎么样

1.有主键
若是设置了主键,而且通常会把主键设置成自增。
咱们知道,Mysql里int类型是4个字节,若是有符号位的话就是[-2^31,2^31-1]无符号位的话最大值就是2^32-1,也就是4294967295mysql

若是超过上限就会看到错误提示:1062 - Duplicate entry '2147483647' for key 'PRIMARY', Time: 0.000000s。
也就是说,若是设置了主键而且自增的话,达到自增主键上限就会报错重复的主键key。
解决方案,mysql主键改成bigint,也就是8个字节sql

2.没有主键
若是没有设置主键的话,InnoDB则会自动帮你建立一个6个字节的row_id,因为row_id是无符号的,因此最大长度是2^48-1im

若是超过上限row_id会从0从新开始计算 , 覆盖旧数据数据

相关文章
相关标签/搜索