mySQL自增主键达到最大值问题

/ 数据库 / 没有评论 / 343浏览

1.使用更大的类型存储,如bigint;

2.使用非自增,例如雪花算法(单机使用雪花算法可以保证69年不会重复)

3.其他,如切换到新表等~

注意以下情形(非法插入了非常大的主键,或者是类似与任务表会定期清空数据):

本来是自增的,并且完全够用的情况,突然插入了一条非常大的主键值,会导致后续自增主键从最大的值开始递增;例如:

idname
1张三
2李四
100000王五

如果继续插入数据,则id会从100001开始递增;

解决办法:

(1)删除主键最大的值;例如:删除id=100000的数据;

(2)设置自增主键值: alter table #{table_name} auto_increment= 3;