MySql中truncate,delete有什么区别?什么情况下id会不会连续呢?

TRUNCATEDELETE都是用来删除表中数据的SQL命令,但它们的工作方式和使用场景有所不同:

  1. DELETE命令:DELETE命令用于从表中删除一行、多行或所有行。你可以添加WHERE子句来指定要删除的行。例如,DELETE FROM table_name WHERE condition;。使用DELETE命令时,每一行都会被单独删除,并且触发器会被触发。此外,DELETE命令会记录下每个删除的行,因此你可以在事务中使用ROLLBACK命令来撤销DELETE操作。

  2. TRUNCATE命令:TRUNCATE命令用于删除表中的所有行。与DELETE不同,TRUNCATE会删除表的数据并重置表的身份计数器(如果存在)。TRUNCATE操作更快,因为它不会记录每个删除的行,也不会触发触发器。然而,你不能在事务中撤销TRUNCATE操作。

总的来说,如果你需要删除表中的所有数据,并且不需要撤销操作,那么TRUNCATE是一个好选择。如果你需要删除特定的行,或者需要在事务中撤销删除操作,那么你应该使用DELETE命令。

 

CREATE DEFINER=`root`@`%` PROCEDURE `proc_test_date`()
BEGIN#Routine body goes here...start TRANSACTION; INSERT into temp_test_date(type,create_time) select 'sysdate',sysdate();INSERT into temp_test_date(type,create_time) select 'now',NOW();select SLEEP(10);INSERT into temp_test_date(type,create_time) select 'sysdate',sysdate();INSERT into temp_test_date(type,create_time) select 'now',NOW();commit;
END

执行truncate 

call proc_test_date();select  * from  temp_test_date;truncate table temp_test_date;call proc_test_date();select  * from  temp_test_date;

然后发现

两次的执行结果id都是续上的,

执行delete

call proc_test_date();
select  * from  temp_test_date;
delete from temp_test_date;
call proc_test_date();
select  * from  temp_test_date;

查看结果

发现两次的查询结果,id并没有续上

这就是truncate,和delete的区别

需要注意的是在什么情况下id会不会连续呢?

在一个添加事务执行时,若是事务没有提交,那么其实以及申请了id

后面插入的数据会默认id以及有了,然后就会越过这个不存在的id

执行函数

##在事务提交之前结束
call proc_test_date();
##等待事务提交
call proc_test_date();select  * from  temp_test_date;

 

发现id1,2的数据并不存在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/824862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实战:打造自定义随机验证码生成器

Python实战:打造自定义随机验证码生成器 在许多网站中,验证码作为一种安全机制被广泛采用,用于验证用户身份、防止自动化攻击和确保数据安全。本篇教程将带领您一步步使用Python创建一个功能齐全的随机验证码生成器。我们将通过导入必要的库…

内网代理技术总结

代理技术就是解决外网和内网的通信问题,例如,我的一个外网主机想要找到另外一个网段下的一个内网主机,理论上是无法找到的。如果我们想要进行通信的话就要使用代理技术。我们可以找到一个与目标内网主机在容易网段下可以通信的外网主机&#…

淘宝旺旺信誉API接口

接口名称: 旺旺照妖镜 收货区间: {"code":0,"data":[{ "startDate":"2023-03-31", //开始日期 "endDate":"2023-08-05", //结束日期 "count":"3", //收货件数 "days":1…

FMECA对于装备通用质量特性的作用分析——SunFMEA软件

FMECA是一种在产品设计、生产和维护过程中广泛应用的质量分析工具。它通过对产品可能出现的故障模式、故障影响和故障严重度进行分析,为设计者提供改进设计、提高产品质量和可靠性的重要依据。在装备通用质量特性方面,FMECA同样发挥着重要的作用。今天Su…

万兆以太网MAC设计(4)CRC_process模块

文章目录 前言一、模块功能二、实现过程三、仿真总结 前言 上文介绍的MAC_RX模块当中增加了CRC校验和比对的功能,本文将根据CRC校验的结果,来决定将数据输出到上层用户还是丢弃。 一、模块功能 接收MAC_RX模块输出的AXIS数据,存入本地环形…

js new 操作符

执行过程 核心:原型链、this、返回 创建一个空对象obj建立构造函数与对象间的关系 原型链 将构造函数中的this绑定到新建的obj上 明确this指向将构造函数返回类型作判断,如果原始值被忽略,如果返回对象,需要正常处理 手写new…

rust学习(BorrowMut异常)

现象: 编译没有问题,运行时出现: 代码: pub fn do_test() {let v Arc::new(RefCell::new(100));let v1 v.try_borrow_mut().unwrap();let v2 v.try_borrow_mut().unwrap(); } 原因: 一个cell貌似不能同时被借用…

Qt实现XYModem协议(三)

1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K&am…

springboot项目maven引入本地包没打包进去

当在 Spring Boot 项目中引入本地的 Maven 依赖时,有时会遇到依赖未被正确打包进项目的情况。这可能是由于 Maven 依赖的范围(scope)或者构建配置问题所致。下面是一些可能的原因和解决方法,以及详细的代码介绍: 依赖范…

AcWing 798. 差分矩阵——算法基础课题解

AcWing 798. 差分矩阵 题目描述 输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上…

PostgreSQL数据库高级sql总结2

1、postgresql 数据库update 去重sql 先按重复记录fk分组找最小的记录,然后更新id 不在子查询中的数据 update td_f_stop_history set del_flag1 where "id" not in (select "min"("id") from td_f_stop_history where allowed_re…

香港裸机云多IP服务器都有哪些配置?

香港裸机云多IP服务器是一种高效、灵活的云计算服务,为用户提供了多IP地址的配置选项,以满足各种复杂的网络需求。这种服务器在配置上具有丰富的多样性和高度的可定制性,下面我们就来科普一下香港裸机云多IP服务器的主要配置。 首先&#xff…

开源模型应用落地-chatglm3-6b-模型输出违禁词检测(九)

一、前言 受限于模型本身的一些缺陷,任何模型均可能会生成一些不正确的输出。如何通过技术的手段去规避模型潜在的风险,提升推理质量是需要持续探究的过程。 如何利用第三方内容安全审核服务去检测模型输出内容的合规性,请查看:开…

【资源分享】Stata 17免费下载安装

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

LabVIEW仪器信息管理系统

LabVIEW仪器信息管理系统 在计量检测实验室的日常工作中,仪器检定校准是一项基础而重要的任务。随着科技的进步和实验室工作量的增加,传统的人工管理方式已经难以满足现代实验室对效率和准确性的要求。开发一套基于LabVIEW的仪器信息管理系统显得尤为必…

利用AOP数据脱敏

背景 要求对接口中含有的电话、身份证、名字进行脱敏处理显示部分数据,并对老的接口同步改造,由于改动部分较多。想到了利用自定义注解配合切面处理,减少对原本接口的改动。 注意:注解及切面只针对String类型的属性有效 注解定…

魔方网表ERP mailupdate.jsp 任意文件上传漏洞复现

0x01 产品简介 魔方网表ERP是一款高效、灵活的企业资源规划解决方案,旨在帮助企业实现数智化转型,消除信息孤岛,打造全程一体化的管理体系。魔方网表ERP拥有强大的表单功能和模块化的产品特点,使得企业可以根据自身业务需求,通过简单的拖拽和配置,快速搭建符合自身特点的…

python爬豆瓣top250电影

文章目录 前言分析与实现1.对豆瓣网网站进行Ajax分析2.发送请求3.进一步筛选(提取) 完整代码 前言 通过这个项目,可以让小白对爬虫有一个初步认识,爬取豆瓣top250是一个初学者学爬虫的必经之路,话不多说,我…

解决AGP升级到8.0后编译报错kaptGenerateStubsDebugKotlin

问题描述 升级了Gradle插件到8.0,运行报以下错误. Execution failed for task :app:kaptGenerateStubsDebugKotlin. > compileDebugJavaWithJavac task (current target is 1.8) and kaptGenerateStubsDebugKotlin task (current target is 17) jvm target com…

每日算法4/17

1552. 两球之间的磁力 题目 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里&…