当前位置: 首页 > article >正文

【MySQL】delete和truncate的用法和区别

一、delete和truncate的用法

有如下数据表t_student

 关键字delete和truncate都用来清除表中数据,语法结构为:

delete from t_student;

truncate table t_student;

两条SQL操作后的结果一样:删除了表中数据,但是会保留表的结构:

 

二、delete和truncate的区别

        从最终的结果来看,虽然使用truncate操作和使用delete操作都可以删除表中的全部记录,但是两者还是有很多区别的,其区别主要体现在以下几个方面:

(1)delete为数据操作语言DML,truncate为数据定义语言DDL。它们两分类不一样。

(2) delete操作是将表中所有记录一条一条删除直到删除完;truncate操作则是保留了表的结构,重新创建了这个表,所有的状态都相当于新表。因此,truncate操作的效率更高

(3)delete操作可以回滚;truncate操作会导致隐式提交,因此不能回滚。

(4)delete操作执行成功后会返回已删除的行数(如删除4行记录,则会显示“Affected rows:4”),截断操作不会返回已删除的行量,结果通常是“Affected rows:0”。delete操作删除表中记录后,再次向表中添加新记录时,对于设置有自增约束字段的值会从删除前表中该字段的最大值加1开始自增;truncate操作则会重新从1开始自增


http://www.kler.cn/a/10571.html

相关文章:

  • openSUSE 环境下通过 zypper 安装软件
  • 使用kalibr_calibration标定相机(realsense)和imu(h7min)
  • Elasticsearch可视化工具Elasticvue插件用法
  • Xshell,Shell的相关介绍与Linux中的权限问题
  • MySQL数据库:SQL语言入门 【上】(学习笔记)
  • Typescript类型运算符、关键字以及内置高级类型
  • 每个企业经营者都应该了解的几个网络安全趋势
  • Loki采集Mysql errorlog,你值得拥有的错误日志聚合系统
  • C#调试与测试 | Assert(断言)
  • 【Pytorch】神经网络搭建
  • 常用位运算和二进制做权限管理
  • 熟练了Flex布局之后,该学学Grid布局了
  • 前端项目-12-个人中心-二级路由配置-导航守卫-懒加载
  • Linux常见操作命令【三】
  • 算法模板(2):数据结构(3) 复杂数据结构1
  • Java14新特性
  • sql server存储过程
  • Java------Stream流式编程高级API【groupingBy、flatMap】(六)
  • 记2023第十四届蓝桥杯感受
  • 初识linux之线程控制
  • (二十三)槽函数的书写规则导致槽函数触发2次的问题
  • Microsoft Intune部署方案
  • 为pip永久性添加国内镜像安装源
  • 44.节流与防抖
  • JavaScript函数
  • android ndk 编译 libevent