简单粗暴的让mysql主键id重新排序
简单粗暴的让mysql主键id重新排序
运行环境 Runtime environment
1 | 操作系统: Windos10 |
背景
简单粗暴的让mysql主键id重新排序。
采集数据入库的时候,偶尔会出现数据入库失败,导致事务回滚的情况。
当mysql表中存在自增id字段,就会出现id断续的情况。
强迫症看着难受。
思路
使用SQL语句,备份表,删除id自增键,重新创建id自增键。
解决方案
- 备份表结构
create table table_bak like table_name;
- 备份表数据
insert into table_bak select * from table_name;
- 删除原来主键字段(如id)
alter table table_name drop id;
- 添加主键,自增,放在第一位
alter table table_name add id int(11) primary key auto_increment first;
- 检查没问题的话,即可清理备份表
drop table table_name;
总结
一般在生产,当中任何删除操作都是有风险的。
必须确保其它业务表,不会与该表的自增字段有关联。
如果是表中数据量达到千万级以上,这样的做法是不推荐的。
但是,目前我处理的数据还只是数十万级,且表是独立的没有外部关联,还算hold得住。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 快乐咸鱼のRaXianch窝!
评论
WalineValine