数据库自增ID用完了会怎么样?

时间:2021-01-08 11:33:26   收藏:0   阅读:0

记一个数据库方面的面试题:数据库自增ID用完了会怎么样?

 

MySQL中 int 类型是4个字节,如果是有符号,那就是 [ -2^31 , 2^31-1 ], 如果是无符号,那就是 [ -2^31 , 2^32-1 ],那就是 4294967295

如果该表是需要频繁插入数据,那么是可能达到这么多数据的。

 

当数据达到这么多时,会报错:

1062 - Duplicate entry  2147483647  for key  PRIMARY , Time:0.000000s

 

解决办法

如果设置了主键,可以把主键改为 begint (8字节),这样又可以继续自增了

如果没有设置主键,数据库会帮我们自动生成一个全局的 row_id (2^48-1),新数据会覆盖老数据

 

 

就这样,奇怪的知识又增加了

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!