不删除表数据重置自增id

最近由于需要将数据表的自增主键id重置,所以查找了相关的信息,但暂时没有找到特别好的方法,只能用比较笨的方法进行重置,那就是新建一个一模一样的临时表,然后清除原先表的数据,再将临时表的信息进行填充以此重置id。


比如有a表需要进行重置id,下面是a表的数据:


不删除表数据重置自增id_第1张图片

需求:需要将a表的id从1开始自增


解决方案:

1;建立临时表b:


不删除表数据重置自增id_第2张图片

这个时候临时表b保存了a表的数据。


2:重置a表


这里要注意truncate是ddl语句,清空表里所有的数据保留表结构,无法进行回退恢复,这里和delete不一样,delete是dml语句,可以进行回退。


3:将临时表b的数据重新导入到a表,进行id自增的重置



对比原先a表的数据和现在a表的数据:

不删除表数据重置自增id_第3张图片

不删除表数据重置自增id_第4张图片

可以看出id已经变成从1开始自增了,这种方法可以完成保留数据重置id,但是毕竟麻烦,但暂时没找到其他的方法,如果有更好的方法,下次再进行补充。



你可能感兴趣的:(mysql)