sql truncate清空表(截断表) 作者:马育民 • 2020-11-04 08:53 • 阅读:10178 # 概述 truncate的作用是 **清空表** 或者 **截断表**,只能作用于表。 从结果看,相当于执行:`delete from table`,删除了所有记录 ### 语法 ``` truncate table tbl_name ``` ``` truncate tbl_name ``` # 与`delete from table`的关系 ### 相同点 清空表中所有记录 ### 区别 1. truncate table 相当于执行 `drop table`然后再执行`create table`,创建一模一样的表(表结构、约束、索引等保持不变)。 delete是将记录一条、一条的删除 2. truncate性能更高,不能回滚,无法恢复记录。 执行delete后,可以回滚,恢复记录 3. truncate是DDL语句,需要拥有表的drop权限 delete语句 是DML语句 其他: 1. truncate会重置表的自增值; delete不会。 3. truncate不会激活与表有关的删除触发器; delete可以。 3. truncate后会使表和索引所占用的空间会恢复到初始大小; delete操作不会减少表或索引所占用的空间 原文出处:http://malaoshi.top/show_1EF6Ysy8EwW6.html