DROP 与 TRUNCATE 区别要点
- TRUNCATE 清空数据留表结构,DROP 连结构一起删
- TRUNCATE 重置自增计数器,DROP 之后表都没了谈不上计数
- 两者都属 DDL,执行即生效,不能回滚
- TRUNCATE 不能带 WHERE,要按条件删用 DELETE
- DROP 会顺带清掉索引、触发器和权限
- 只想清数保留表:TRUNCATE;想彻底销毁:DROP
DROP 与 TRUNCATE 区别对照
| 对比项 | TRUNCATE | DROP |
|---|---|---|
| 作用对象 | 仅数据 | 表加数据 |
| 是否留表 | 留 | 不留 |
| 自增计数 | 重置 | 表消失 |
| 可否回滚 | 不可 | 不可 |
| 语句类型 | DDL | DDL |
避坑提醒:需要按条件删数据用 DELETE 而非 TRUNCATE,TRUNCATE 没 WHERE 一清空就找不回。