首先这三个命令都能删除表数据。
1.delete 命令后面可以带where条件删除行数据,且delete能够触发trigger操作。delete是DML(数据库操作语言),在像innodb这种事务型引擎里,在事务里需要等到事务提交后delete命令才能生效,且可以回滚。
2.truncate是DDL(数据库定义语言),删除整个表数据,后面不能带where条件,且不能触发trigger,且不能回滚。
3.drop也是DDL,不仅删除表数据且删除表结构,不能触发trigger,且不能回滚。
对于速度:
drop>truncate>delete

本文详细对比了SQL中三种删除操作:delete、truncate 和 drop 的不同之处。解释了它们的使用场景、是否支持条件删除、能否触发触发器以及是否支持回滚等问题,并给出了执行速度上的比较。

被折叠的 条评论
为什么被折叠?



