概述
truncate的作用是 清空表 或者 截断表,只能作用于表。
从结果看,相当于执行:delete from table,删除了所有记录
语法
truncate table tbl_name
truncate tbl_name
与delete from table的关系
相同点
清空表中所有记录
区别
truncate table 相当于执行
drop table然后再执行create table,创建一模一样的表(表结构、约束、索引等保持不变)。
delete是将记录一条、一条的删除truncate性能更高,不能回滚,无法恢复记录。
执行delete后,可以回滚,恢复记录truncate是DDL语句,需要拥有表的drop权限
delete语句 是DML语句
其他:
truncate会重置表的自增值;
delete不会。truncate不会激活与表有关的删除触发器;
delete可以。truncate后会使表和索引所占用的空间会恢复到初始大小;
delete操作不会减少表或索引所占用的空间