关注我

    我的微信
在线咨询 x
在线咨询
有什么可以帮到你
点击咨询

mysql 清空表数据 , ​delete from 表名 和 truncate table 表名; 重置auto_increment值

简介在mysql数据库表中我们经常会使用id自增字段,但是每次用delete命令清空表后id并不是从1开始计数,总是接着之前的最后一个id进行自增,那么解决呢?使用mysql自带的truncate命令,用法:truncate table 表名;


有两种方法清空表数据:


delete from 表名;

truncate table 表名;


两种方式的区别:

1、truncate 是整体删除,delete是逐条删除,所以在删除整个表数据时,truncate比delete快得多

2、truncate不写进服务器的log, delete会写进服务器的log

3、truncate删除之后,标识列,自增字段,索引重新归1,而delete删除之后,再次添加数据, 会重新会从删掉的索引之后自增。

4、delete更加灵活,可以选择性删除表中数据,delete from '表名' where xxx

5、delete 方式在不带条件的情况下会清空整个表数据,但是自增ID不会还原,而是从删除前最后的ID继续自增。

6、truncate 方式则会将自增ID一同还原为初始值。


重置auto_increment值


MYSQL数据库自动增长的ID如何恢复

清空表的时候。不能用

delete from tablename;

而是要用: 

truncate table tablename; 

这样auto_increment 

就恢复成1了 

或者

delete from tablename; 清空内容后直接用ALTER命令修改表: 

delete from tablename;
alter table tablename auto_increment=1;