我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Truncate/Delete/Drop table的特点和区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Truncate/Delete/Drop table的特点和区别

之前一直对Truncate/Delete/Drop认识的不是很清晰,所以特意的翻了一下MySQL5.7 Reference Manual,准备系统的了解一下,这里是一些翻译,外加一点自己的认知。


Truncate的特点

  • 逻辑上truncate table和delete from table_name;相似,但是过程是先drop table,然后在re-create table,如果要清空一个大表的所有数据行,truncate比delete高效;

  • Truncate是一个DDL操作,一旦执行会隐式提交,这就说明truncate无法rollback,所以执行之前需谨慎;

  • 如果表被锁住,truncate会报错;

  • 如果有外键约束,truncate也会报错;

  • 对于InnoDB/MyISAM表的auto_increment的列,truncate table之后可以重新使用序列值;

  • truncate table无法触发delete相关的触发器;


Delete的特点

Delete是DML操作,如果没有提交,可以rollback;

对于InnoDB/MyISAM表的auto_increment的列,delete table之后可以无法重新使用序列值,但是重启之后可以重新使用序列;

Delete from table_name后面一定要跟where条件,否则会删除表的所有行;


Drop的特点

Drop table除了在数据库层面删除表,还会在系统层面删除xxx.ibd,xxx.frm(InnoDB表)或 xxx.MYD,xxx.MYI,xxx.frm (MyISAM)等文件;

drop table if exists table_name可以防止表不存在的报错,但是会有一个warning;

drop table也会隐式提交,除了临时表;


参考链接

https://dev.mysql.com/doc/refman/5.7/en/truncate-table.html

https://dev.mysql.com/doc/refman/5.7/en/delete.html

https://dev.mysql.com/doc/refman/5.7/en/drop-table.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Truncate/Delete/Drop table的特点和区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql中的delete,drop和truncate有哪些区别

这篇文章主要讲解了“mysql中的delete,drop和truncate有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的delete,drop和truncate有哪些
2023-07-02

关于SQL表中drop table和delete table的区别

删表是一个比较危险的操作,这次给了个机会就想尝试下,记得在mysql表中有两种操作,drop与delete,但是在maxcompute产品中尝试时,该产品只支持drop操作。这里说下二者操作的区别,需要的朋友可以参考下
2023-01-28

关于SQL表中drop table和delete table的区别

问题:使用阿里云的maxcompute产品发现有中间表的产生,需要删除。 删表是一个比较危险的操作,这次给了个机会就想尝试下,记得在mysql表中有两种操作,drop与delete,但是在maxcompute产品中尝试时,该产品只支持dro
2023-01-28

Mysql中delete from table、truncate table、drop table的区别

Mysql中delete from table、truncate table、drop table的区别   DELETE FROM 与 TRUNCATE TABLE区别 区别一:语句格式不同 DELETE FROM:语句格式如下:DELE
2023-08-19

mysql中drop、truncate与delete的区别是什么

本篇内容介绍了“mysql中drop、truncate与delete的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. drop
2023-06-29

SQLSERVER的truncate和delete区别解析

在面试中我相信有很多朋友会被问到truncate和delete有什么区别,接下来通过本文给大家普及下SQLSERVER的truncate和delete有区别,需要的朋友可以参考下
2023-02-09

oracle中delete和drop的区别

oracle 的 delete 和 drop 命令用于删除数据,但方式不同:delete 删除表中满足条件的特定行,可恢复已删除数据。drop 删除整个表或其他数据库对象,永久删除数据,不可恢复。Oracle 中 DELETE 和 DROP
oracle中delete和drop的区别
2024-05-09

SQLSERVER 的 truncate 和 delete 区别解析

目录一:背景1. 讲故事二:区别详解1. 思考2. 观察 delete 的事务日志。3. 观察 truncate 的事务日志。三:GAM 空间管理1. 基本原理四:总结一:背景1. 讲故事在面试中我相信有很多朋友会被问到 truncat
2023-02-09

MySQL深入详解delete与Truncate及drop的使用区别

目录一、删除的内容deletetruncatedrop drop二、删除过程三、表和索引所占空间四、应用范围五、删除程度六、处理速度七、语句类型:八、语法区别九、总结deletetruncatedrop参考文章:链接一、删除的内容del
2022-07-25

Drop、Delete与Trunc的区别和应用方式

目录1. DROP 表2. DELETE 表3. TRUNCATE 表4. 恢复数据总结在oracle数据库中,DROP 、 DELETE、TRUNCATE 都可以用来处理表的数据,但是功能和效果是不同的。以下是它们之间的区别以及如何来进
Drop、Delete与Trunc的区别和应用方式
2024-08-23

MySQL两种删除用户语句的区别(delete user和drop user)

Tip: 在MySQL中,我们经常需要创建用户和删除用户,创建用户时,我们一般使用create user或者grant语句来创建,create语法创建的用户没有任何权限,需要再使用grant语法来分配权限,而grant语法创建的用户直接拥有
2022-05-25

编程热搜

目录