当前位置: 代码网 > it编程>数据库>Mysql > MySQL中Delete和Truncate区别及使用说明

MySQL中Delete和Truncate区别及使用说明

2026年03月06日 Mysql 我要评论
delete和truncate区别mysql清空表语句truncate table [表名] ;delete from [表名] where …;相同点两者都是删除表数据 但不会删除表结构不同点1.d

delete和truncate区别

mysql清空表语句

truncate table [表名] ;
delete from [表名] where …;

相同点

  • 两者都是删除表数据 但不会删除表结构

不同点

  • 1.delete支持按条件删除,truncate不支持。
  • 2.delete 删除后自增列不会重置,而truncate会被重置。
  • 3.delete是逐条删除(速度较慢),truncate是整体删除(速度较快)。
  • 4.delete删除是一条一条删除,并不会改变表结构,属于dml,而truncate删除表数据是将表删掉,重新新建一张表,属于ddl。
  • 5.delete不会释放空间,而truncate会释放空间。
  • 6.delete 支持回滚,truncate不支持。

总结

由于delete 是数据操作语言(dml - data manipulation language),操作时原数据会被放到 rollback segment中,可以被回滚;而truncate是数据定义语言(ddl - data definition language),操作时不会进行存储,不能进行回滚。truncate语句实际是删除原来的表然后重新建立一个新表。

注:drop table tablename 会连整个表结构一起删除。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com