drop、truncate和delete的区别

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

另外drop和truncate属于DDL语句
delete属于DML语句

posted @ 2025-07-15 21:01  Charlie-Pang  阅读(7)  评论(0)    收藏  举报