drop、truncate和delete的区别
| 特性 / 命令 | DELETE |
TRUNCATE |
DROP |
|---|---|---|---|
| 删除目标 | 删除表中的部分或全部数据 | 删除整张表中的全部数据 | 删除整个数据库对象(表/库) |
| 是否可回滚 | ✅ 支持事务,可回滚 | ❌ 不支持回滚 | ❌ 不支持回滚 |
| 是否记录日志 | ✅ 行级别记录日志 | ✅ 记录,但不记录每一行 | ✅ 记录结构变更(非行级) |
| 是否触发触发器 | ✅ 触发(如 AFTER DELETE) |
❌ 不触发 | ❌ 不触发 |
| 是否保留结构 | ✅ 表结构和约束都保留 | ✅ 表结构保留,重置自增主键 | ❌ 表结构也被删除(连数据一起) |
| 执行速度 | 慢(逐行删除) | 快(不逐行) | 非常快 |
| 常用于 | 精确控制删除逻辑 | 快速清空整张表 | 删除整张表或数据库 |
另外drop和truncate属于DDL语句
delete属于DML语句

浙公网安备 33010602011771号