不删除表数据重置自增id
最近由于需要将数据表的自增主键id重置,所以查找了相关的信息,但暂时没有找到特别好的方法,只能用比较笨的方法进行重置,那就是新建一个一模一样的临时表,然后清除原先表的数据,再将临时表的信息进行填充以此重置id。
比如有a表需要进行重置id,需求:需要将a表的id从1开始自增
1;建立临时表b:
create table b select * from a;
这个时候临时表b保存了a表的数据。
2:重置a表
truncate a;
这里要注意truncate是ddl语句,清空表里所有的数据保留表结构,无法进行回退恢复,这里和delete不一样,delete是dml语句,可以进行回退。
3:将临时表b的数据重新导入到a表,进行id自增的重置
insert into a(name,status) select name,status from b order by id asc;
下一篇 >>