SQL语法:TRUNCATE 清空表

2023-11-12

删除记录的方式汇总:

  • 根据条件删除:DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ]
  • 全部删除(表清空,包含自增计数器重置):TRUNCATE tb_name

细节剖析:

  • 删除exam_record表中所有记录;
  • 并重置自增主键;

思路实现:

  • 本题采用第二种删除方式,满足条件1或条件2就删除,但只删除3条记录:

1

TRUNCATE exam_record;

  • 也可采用第一种,不过需要手动重置自增ID,不过效率角度考虑,还是第二种方式效率更高:

1

2

DELETE FROM exam_record;

ALTER TABLE exam_record auto_increment=1;

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前一定要再三检查确认,最好提前备份下表数据。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL语法:TRUNCATE 清空表 的相关文章

随机推荐

  • 交叉编译(全志)

    文章目录 一 交叉编译概念 二 香橙派交叉编译 3 带WiringPi库的交叉编译 一 交叉编译概念 交叉编译 就是 在一种平台上编译 编译出来的程序 是放到别的平台上运行即编译的环境 和运行的环境不一样 属于交叉的 例 在进行嵌入式开发时
  • 程序员或IT从业者笔记软件大观

    苹果 橘子 梨 好多啊 呵呵 哦不对 我要说的 不是种种水果 而是各式各样的笔记软件 你会不会陷入选择恐惧症呢 不过道理是差不多的 那就是 青苹果 红苹果 或者烂苹果 在选择的过程中 除了传统的Word WPS 其它的你可能也都会尝一尝 好
  • 云原生架构体系

    云原生 Cloud Native 的概念在国内提及的越来越多 但大部分人对云原生的认识仅限于容器 微服务 DevOps等内容 把容器 微服务 DevOps就等同于云原生 这显然是不对的 CNCF从其自身的角度定义了云原生技术 云原生技术使企
  • Windows下安装Android Studio

    一 下载Android Studio 官网地址 http www android studio org 个人也推荐使用官网推荐的 可以省去一定的步骤跟麻烦 二 安装Android Studio 这里选择下路径 当然也可以不用进行修改 因为我
  • java开发不会找错怎么办_Java开发中常见错误及规避技巧

    原标题 Java开发中常见错误及规避技巧 在开发Java软件时可能会遇到许多类型的错误 但大多数可以避免 我们列举了50个最常见的Java软件错误 其中包含代码示例和教程 以帮助您解决常见的编码问题 编译器错误 编译器错误消息在Java软件
  • webAR涉及的技术

    1 技术体系 1 1技术体系整理 其中绿色底色的代表Demo中表现出的能力比较成熟 可以直接应用 脑图地址 http naotu baidu com file 3392a895a903972520b2f65fda12ee3c token 5
  • C++模板特化与部分特化(偏特化)

    模板即是对类型的一种泛化 当我们的模板对某种特定类型有特定的实现时 模板特化即是一个很好的解决方案 一 模板特化 template
  • Python Web执行迁移文件命令

    在 Python 中执行迁移文件的命令通常是使用 Django 的 migrate 命令 要使用 migrate 命令 首先需要确保你已经在 Django 项目的根目录下 然后运行以下命令 python manage py migrate
  • C语言%lld、%llu无法正常输出比long long长整数小的数

    lld和 llu是长整型变量long long的格式化字符 用来输出有符号和无符号长整型数据 printf longlong max lld min lld LLONG MAX LLONG MIN printf nunsigned long
  • 【factoryio】虚拟仓储实现(入仓&出仓)

    实现虚拟工厂场景之一的智能仓储实验 注 本文仅供参考 目录 引 入仓部分 1 上料部分 1 效果 2 实现 2 入仓部分 1 效果 2 实现 3 入仓扩展 1 行列控制和优先级 2 入仓优化和完善 出仓部分 1 出仓 2 后传送带 3 出仓
  • Unity 四元数和向量相乘

    Unity 四元数和向量相乘 原创 2016年12月08日 16 51 35 标签 unity3d position rotation Vector3 0 0 0 0 distance target position 这是相机环绕的一段代码
  • UTM投影

    转载 https www sohu com a 297391828 169228 UTM 投影是一种等角横轴割圆柱投影 圆柱割地球于南纬80度 北纬84度两条等高圈 UTM采用了网格的分带 或分块 UTM是由美国制定 因此起始分带并不在本初
  • qt源代码在线查看

    说明 有时候需要查看qt源代码的实现 但是qt项目本身过于庞大 打开太麻烦了 但是在软件的开发中 最多跳转到qt源代码的头文件部分 在线查看qt源代码的链接 链接如下 https code woboq org qt5 功能介绍 查看代码结构
  • 自己归纳整理的ARM THUMB指令机器码表

    有个项目需要分析ARM THUMB指令的机器码 网上没有搜索到整理好的机器码表 只好自己把相关指令的机器码归纳整理出来 这里分享给大家 THUMB指令并不多 只有六十多条 这个数字真的是非常了不起 51都一百三十多条呢 可能这张表对于大多数
  • 成长记录——数据库获取数据转换格式并暴露接口

    需求 新功能增加 完成软件新界面增加 包含逻辑与数据 实现 获取数据库内容 为接口定义对应的数据格式 完成数据结构组成 数据获取接口实现 数据更改后写入数据库接口实现 获取数据库内容 首先 已经默认拥有了数据库 并内部已有数据 定义数据接口
  • 用Obsidian打造一个强大的写作辅助系统

    用Obsidian打造一个强大的写作辅助系统 Github https github com zazaji obsidian SenGener 用法 在写作的过程中 当文思枯竭的时候 按下快捷键 可以定义自己的快捷键 然后AI自动根据之前写
  • 基于ISS关键点的ICP算法在Matlab中的实现

    基于ISS关键点的ICP算法在Matlab中的实现 ICP Iterative Closest Point 算法是一种常用的点云配准方法 用于将两个或多个点云之间进行对齐 ISS Intrinsic Shape Signatures 关键点
  • IDEA运行Maven打包项目编译报错:不再支持源选项 5。请使用 6 或者更高版本。不再支持目标选项 1.5。请使用 1.6 或更高版本。

    IDEA运行Maven打包项目编译报错 不再支持源选项 5 请使用 6 或者更高版本 不再支持目标选项 1 5 请使用 1 6 或更高版本 最近学习大数据 利用mapreduce进行WordCount单词计数测试 在IDEA中建好Maven
  • 猿创征文|【云原生之Docker】使用Docker部署Flare个人导航网页

    猿创征文 云原生之Docker 使用Docker部署Flare个人导航网页 一 卷首语 二 Flare介绍 1 Flare介绍 2 Flare的硬件配置要求 3 Flare的特点 三 检查本地docker环境 1 检查docker服务状态
  • SQL语法:TRUNCATE 清空表

    删除记录的方式汇总 根据条件删除 DELETE FROM tb name WHERE options ORDER BY fields LIMIT n 全部删除 表清空 包含自增计数器重置 TRUNCATE tb name 细节剖析 删除ex