关注 陈华博客 的朋友都知道,最近我在研究 基金投资 。程序员研究一门学问,自然不能止步于看一些表象数据,而是要获取数据之后自己分析。所以我最近在各大平台采集基金相关数据。
采集过程中自然遇到了很多问题,比如说采集的有些数据是有问题的,在数据入库的时候,自然会用到事务,遇到有问题的数据会回滚。这段时间我采集的数据总共有300多万,但是我查数据库的时候,发现一个表的自增id已经涨到了700多万,说明中间有很多次次回滚。
当然id很大并不影响业务,但是我目前还在采集数据阶段,id有断裂,不方便我分析问题。所以我就把id重新排了个序,这里给大家分享一下整个过程。
大概过程是:备份表 - 删除原id字段,重新添加自增id字段 - 设置自增起始值。
详细步骤如下:
1、备份表结构(对数据表操作之前备份一下是个好习惯)
create table table_name_copy like table_name;
2、备份表数据
insert into table_name_copy select * from table_name;
也可以使用navicat直接 ctrl+c ctrl+v
3、删除原来主键字段(如id)
alter table table_name drop id;
4、添加主键,自增,放在第一位
alter table table_name add id int(11) primary key auto_increment first;
5、设置自增id
alter table table_name AUTO_INCREMENT=3140731;
6、删除备份。检查没问题的话,备份的表可以删了
delete from table_name_copy;
当然了,导致id断裂的原因,还是MySQL事务回滚,但是自增id还是会增加。以上方法只适用于没有id字段关联的场景。
本文为 陈华 原创,欢迎转载,但请注明出处:http://edu.ichenhua.cn/read/26
- 上一篇:
- 我开始学习基金投资了