1.问题描述
先前设置了错误的id(设置为了string),后面转为long的bigint时发现当前已有数据id都很大,且再增加会更大,有超出阈值的危险
2.解决目标
将已有数据以正常自增的方式更新,并使新增的数据id以当前数据量增长
3.解决方案
select count(*) from TABLE;
alter table TABLE add column tmp_int int(5) not null comment '暂时字段' after id;
// 将现有id更新为从1开始递增的数据
set @num:=0;
update TABLE set tmp_int = (@num:=@num+1);
update TABLE set id = tmp_int;
// 将新增的数据id以当前数据量增长
ALTER TABLE TABLE_NAME AUTO_INCREMENT = 1;
alter table TABLE DROP COLUMN tmp_int;