最新文章
- MySQL中, group by 和 order by 一起使用会有排序问题,group by 和 order by 同时使用时要注意的地方
- Vue学习笔记(10) ——Vue组件中的data和methods
- Vue学习笔记(9) ——Vue组件创建的几种方式
- Vue学习笔记(8) ——Vue实例的生命周期
- Vue学习笔记(7) —— 过滤器 filter的基本使用
- Vue学习笔记(6) ——v-if指令和v-show指令
- Vue学习笔记(5) —— v-for指令和key属性
- Vue学习笔记(5) —— Vue中样式-class样式和style样式
- Vue学习笔记(4) —— v-model指令,双向数据绑定
- Vue学习笔记(3) —— Vue事件修饰符
关注我

在线咨询
x
有什么可以帮到你

点击咨询
mysql 清空表数据 , delete from 表名 和 truncate table 表名; 重置auto_increment值
- 分类:MySQL技术
- 时间:2018-12-05
- 共710人围观
简介在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;
下一篇:MySQL批量修改数据表前缀