truncate用法:清空表 == 删除表(drop)+创建表(create)
-
truncate table 表名 truncate 表名
区别:
truncate=drop+create:
- 前者可以理解为后两者的语句组合,因此truncate需要drop和create级别权限,因此属于DDL语言,不可回滚。
- truncate操作是清空所有行内容,不改变表结构,约束,索引
- truncate会重置字段自增值
- truncate不会激活与表有关的删除触发器
- truncate会初始化表和索引所占用的空间
drop
- drop会删除表的结构及其所依赖的约束、索引等。
- drop语句将表所占用的空间全释放掉
delete
- delete不会重置表的自增值,如删除id=15,新增下一条回事id=16。
- delete会激活与表有关的删除触发器
- delete操作不会减少表或索引所占用的空间,