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

MySQL Truncate用法详解

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MySQL Truncate用法详解

前言:

当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及注意事项。

1.truncate使用语法

truncate的作用是清空表或者说是截断表,只能作用于表。truncate的语法很简单,后面直接跟表名即可,例如:truncate table tbl_name 或者 truncate tbl_name 。

执行truncate语句需要拥有表的drop权限,从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create table语句的组合。为了实现高性能,它绕过了删除数据的DML方法,因此,它不能回滚。尽管truncate table与delete相似,但它被分类为DDL语句而不是DML语句。

2.truncate与drop,delete的对比

上面说过truncate与delete,drop很相似,其实这三者还是与很大的不同的,下面简单对比下三者的异同。

  • truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。
  • truncate只能作用于表;delete,drop可作用于表、视图等。
  • truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。
  • truncate会重置表的自增值;delete不会。
  • truncate不会激活与表有关的删除触发器;delete可以。
  • truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。

3.truncate使用场景及注意事项

通过前面介绍,我们很容易得出truncate语句的使用场景,即该表数据完全不需要时可以用truncate。如果想删除部分数据用delete,注意带上where子句;如果想删除表,当然用drop;如果想保留表而将所有数据删除且和事务无关,用truncate即可;如果和事务有关,或者想触发trigger,还是用delete;如果是整理表内部的碎片,可以用truncate然后再重新插入数据。

无论怎样,truncate表都是高危操作,特别是在生产环境要更加小心,下面列出几点注意事项,希望大家使用时可以做下参考。

  • truncate无法通过binlog回滚。
  • truncate会清空所有数据且执行速度很快。
  • truncate不能对有外键约束引用的表使用。
  • 执行truncate需要drop权限,不建议给账号drop权限。
  • 执行truncate前一定要再三检查确认,最好提前备份下表数据。

以上就是MySQL Truncate用法详解的详细内容,更多关于MySQL Truncate的资料请关注自学编程网其它相关文章!

免责声明:

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

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

MySQL Truncate用法详解

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

下载Word文档

猜你喜欢

MySQL Truncate用法详解

前言: 当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及注意事项。 1.truncate使用语法 truncat
2022-05-28

MySQL中的TRUNCATE()函数用法

目录mysql的TRUNCATE()函数规则如下函数示例当 X 为正数时当 X 为负数时总结MySQL的TRUhttp://www.lsjlt.comNCATE()函数TRUNCATE(X,D编程网) 是MySQL自带的一个系统函数。其
MySQL中的TRUNCATE()函数用法
2024-10-11

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

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

oracle中truncate用法

oracle 中的 truncate 命令用于快速删除表中所有数据,不使用事务日志,速度快,不可回滚,会重新分配表空间,保留表定义,并重置身份标识列。与 delete 相比,truncate 速度更快,不可回滚,会重新分配空间。Oracle
oracle中truncate用法
2024-04-30

MySQL truncate table语句的使用

Truncate table语句用来删除/截断表里的所有数据和delete删除所有表数据在逻辑上含义相同,但性能更快类似执行了drop table和create table两个语句mysql> select * from students_
2022-05-22

MySQL TRUNCATE() 函数有什么用?

MySQL TRUNCATE() 函数用于返回 X 截断至 D 位小数的值。如果D为0,则去除小数点。如果D为负数,则D个值的整数部分被截断。其语法如下 -语法TRUNCATE(X, D)此处X 是要截断的数字。D 是小数点后的数字。数字
2023-10-22

MySQL删除表数据、清空表命令详解(truncate、drop、delete区别)

目录一、mysql清空表数据三种方法1.1 清空表数据:truncate1.2 删除表:drop1.3 删除/清空表数据:delete二、使用原则三、truncate、drop、delete区别1.操作类型2.数据删除方式3.执行速度:dr
MySQL删除表数据、清空表命令详解(truncate、drop、delete区别)
2024-10-11

MySQL中的TRUNCATE TABLE命令的使用

目录前言一、TRUNCATE TABLE命令基础用法二、TRUNCATE TABLE与DELETE的编程区别三、TRUNCATE TABLE的局限性四、应用场景举例五、安全提示结语前言在mysql数据库管理中,TRUNCATE TABLE
MySQL中的TRUNCATE TABLE命令的使用
2024-08-18

mysql中sum用法详解

sum() 函数计算指定列非空值的总和。它支持 distinct、过滤条件、部分和以及与其他聚合函数配合使用。sum() 忽略 null 值,负值返回负值,非数字值返回 null。MySQL 中的 SUM() 函数SUM() 函数简介S
mysql中sum用法详解
2024-05-09

如何在MySQL中使用truncate table语句

如何在MySQL中使用truncate table语句?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Truncate table语句用来删除/截断表里的所有数据和delet
2023-06-14

mysql中exists的用法详解

前言 在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个 exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案 语法解释 语法 SELECT
2023-08-16

编程热搜

目录