0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Truncate的用法和注意事项

汽车玩家 来源:MySQL技术 作者:MySQL技术 2020-05-05 22:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言:

当我们想要清空某张表时,往往会使用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前一定要再三检查确认,最好提前备份下表数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DDL
    DDL
    +关注

    关注

    0

    文章

    14

    浏览量

    6570
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问CW32F030的硬件注意事项有哪些?

    CW32F030的硬件注意事项有哪些
    发表于 12-25 08:20

    请问IAP功能升级流程中有哪些注意事项

    IAP 功能升级流程中有哪些注意事项
    发表于 12-23 07:55

    BNC转接头接线注意事项

    本文从工程角度总结BNC转接头接线过程中的关键注意事项,涵盖阻抗匹配、接线规范、工艺选择及检测要点,帮助用户避免常见接线问题。
    的头像 发表于 12-19 14:04 609次阅读
    BNC转接头接线<b class='flag-5'>注意事项</b>

    迅为RK3588开发板Android系统烧写及注意事项

    迅为RK3588开发板Android系统烧写及注意事项
    的头像 发表于 12-03 15:17 7388次阅读
    迅为RK3588开发板Android系统烧写及<b class='flag-5'>注意事项</b>

    驱动板PCB布线的注意事项

    PCB Layout 注意事项 1)布局注意事项: ●● 整体布局遵循功率回路与小信号控制回路分开布局原则,功率部分和控制部分的 GND 分开回流到输入 GND。 ●● 芯片的放置方向优先考虑驱动
    发表于 12-02 07:40

    Enclustra瑞苏盈科产品使用注意事项

    我们准备了关于瑞苏盈科产品使用的注意事项,旨在帮助客户更快,更好的使用瑞苏盈科的产品,实现以最小化的成本提供理想的解决方案,帮助客户打造独树一帜的产品并减少上市时间。瑞苏盈科核心板使用注意事项:电子
    的头像 发表于 11-28 10:28 792次阅读
    Enclustra瑞苏盈科产品使用<b class='flag-5'>注意事项</b>

    CW32F030在使用中的注意事项有哪些?

    CW32F030在使用中的注意事项有哪些?
    发表于 11-18 06:20

    RT1180 XMCD的特点和使用注意事项

    之前在 “XMCD – i.MX RT11xx系列简单易用的特定外设配置功能”的文章给大家介绍了XMCD功能的基础知识和用法,不过前面是以RT1170为例介绍的,本文将基于RT1180着重介绍XMCD的特点以及使用时的注意事项
    的头像 发表于 10-07 11:06 1566次阅读
    RT1180 XMCD的特点和使用<b class='flag-5'>注意事项</b>

    emWin AppWizard 开发注意事项有哪些?

    emWin AppWizard 开发注意事项
    发表于 09-04 06:18

    别让这些细节毁了PCBA!焊接注意事项清单

    一站式PCBA加工厂家今天为大家讲讲PCBA加工中电子元器件焊接注意事项有哪些?PCBA加工中电子元器件焊接注意事项。 电子元器件焊接关键注意事项 在PCBA加工中,焊接工艺直接影响电路板的可靠性
    的头像 发表于 07-23 09:26 1489次阅读

    智多晶PLL使用注意事项

    在FPGA设计中,PLL(锁相环)模块作为核心时钟管理单元,通过灵活的倍频、分频和相位调整功能,为系统提供多路高精度时钟信号。它不仅解决了时序同步问题,还能有效消除时钟偏移,提升系统稳定性。本文将深入探讨智多晶PLL在实际应用中的关键注意事项,帮助工程师规避常见设计风险。
    的头像 发表于 06-13 16:37 1765次阅读
    智多晶PLL使用<b class='flag-5'>注意事项</b>

    美国Odyssey奥德赛电池充电注意事项全解析

    Odyssey奥德赛电池充电注意事项全解析 奥德赛电池作为高性能的深循环铅酸电池,广泛应用于汽车启动、摩托车、船舶以及备用电源系统中。正确的充电方法不仅能够延长电池寿命,还能保障其性能稳定发挥
    的头像 发表于 05-19 16:31 1281次阅读
    美国Odyssey奥德赛电池充电<b class='flag-5'>注意事项</b>全解析

    IGBT器件的防静电注意事项

    IGBT作为功率半导体器件,对静电极为敏感。我将从其静电敏感性原理入手,详细阐述使用过程中防静电的具体注意事项与防护措施,确保其安全稳定运行。
    的头像 发表于 05-15 14:55 2156次阅读

    手机喇叭气密性检测仪的注意事项

    使用手机喇叭气密性检测仪的注意事项包括以下几点:一、使用前注意事项仔细阅读手机喇叭气密性检测仪的使用说明书,了解设备的操作方法和注意事项。检查气密性检测仪的各部件是否完好,包括压力表、传感器、连接
    的头像 发表于 05-15 13:38 885次阅读
    手机喇叭气密性检测仪的<b class='flag-5'>注意事项</b>

    设置射频网络分析仪的测试条件有哪些注意事项

    射频网络分析仪(VNA)的测试条件设置直接影响测量结果的准确性和可靠性。以下从仪器配置、被测器件(DUT)特性、环境干扰、校准与验证四个维度,系统梳理关键注意事项及解决方案。一、仪器配置与参数设置
    发表于 05-06 16:02