MySQL笔记(八):事务

news2024/12/22 11:54:18

一、事务

事务用于保证数据的一致性,它由一组相关的dml组成,该组的dml语句要么全部成功,要么全部失败:转账。

事务和锁:当执行事务操作时(dml语句),mysql会在表上加锁,防止其他用户改表的数据

mysql数据控制台事物的几个重要操作

1、start transaction -- 开始一个事务
2、 savepoint 保存点名 --设置保存点
3、rollback to --回退事务
4、 rollback --回退全部事务
5、 comiit -- 提交事务,所有操作生效,不能回退

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

回退的过程中,会删除回退点之前的保存点

在这里插入图片描述


#讨论事务细节

-- 1、如果不开始事务,默认情况下,dml操作是自动提交的,不能回滚

INSERT INTO t27 VALUES(3,'milan');

SELECT * FROM t27;-- 上一节rollback已经回退到开始事物的点了,所以只有新添加的一条数据

-- 2、如果开始一个事务,你没有创建保存点,可以执行rollback,默认就是回退到事务开始的状态

START TRANSACTION

INSERT INTO t27 VALUES(4,'kitty');

INSERT INTO t27 VALUES(5,'scott'0:

ROLLBACK;-- 表示直接回退到事务开始的状态,因为中途的dml操作没有设置保存点,只有开始状态的默认保存点


-- 3、你也可以在这个事务中(还没有提交时),创建多个保存点,比如:savepoint
-- 执行dml,savepoint bbb

-- 4、你可以在事务没有提交前,回退到任何一个保存点

-- 5、innoDB存储引擎支持事务,myISAM不支持

-- 6、开始一个事务:start transaction,   set autocommit=off

二、事务的隔离级别

(1)介绍

	多个连接开启各自事务操作数据库中数据时,数据库系统要负责隔离事务,以保证各个连接在获取数据时的准确性
	如果不考虑隔离性,可能会引发:
	脏读:dirty read,当一个事务读取另一个事务尚未提交的修改时,产生脏读
	不可重复读:nonrepeatable read, 同一查询在同一事务中多次进行,由于其他连接提交事务所做的**修改或删除,**每次返回不同的结果集,发生不可重复读
	幻读:phantom read 同一查询在同一事务中多次进行,由于其他连接提交事务所做的**插入**,每次返回不同的结果集,产生幻读

(2)四种隔离级别

在这里插入图片描述

1)设置隔离级别为读未提交
在这里插入图片描述

幻读现象:另一个控制台应该只能读到本控制台事务开始的情况,但是本控制台发生操作后,另一个控制台也能捕捉到,这是不行的。

在这里插入图片描述

2)改变隔离级别为读已提交:在插入一条数据后,另一个控制台看不到

在这里插入图片描述

3)可重复读

演示不可重复读

在这里插入图片描述
在这里插入图片描述

4)可串行化:当一个连接正在操作数据库,并且没有commit时,另一个连接无法查询;一提交就可以查了

在这里插入图片描述
在这里插入图片描述

(3)设置隔离

在这里插入图片描述

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

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

相关文章

【Mysql】第十四章 使用C语言链接(环境配置+连接库+sql函数)

文章目录 1.下载库2.上传库3.编译库4.连接库创建对象-mysql_init连接数据库-mysql_real_connect关闭数据库连接-mysql_close 5.sql函数设置编码格式-mysql_set_character_set发送请求-mysql_query获取查询结果-mysql_store_result获取查询结果的行数-mysql_num_rows获取查询结果…

案例开发-日程管理2第一期(超详细教程、配备图文和源代码注释,没学过也能看懂)

文章目录 一、 项目前期准备1.数据库准备2.导入依赖3.pojo包处理4.dao包处理5.service包处理6.controller包处理7.加密工具类的使用8.页面文件的导入 总结 一、 项目前期准备 1.数据库准备 创建schedule_system数据库并执行如下语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHE…

国产AI大模型:从萌芽到繁盛,未来可期

I一、AI****大模型的起源 自1950年图灵提出著名的“图灵测试”以来,人工智能领域经历了从学术探索到实际应用的转变。1956年达特茅斯会议上“人工智能”一词的首次提出,标志着AI正式成为学术研究的焦点。进入21世纪,随着计算能力的显著提升和…

【Pyspark-驯化】一文搞懂Pyspark中的withColumnRenamed函数的使用技巧

【Pyspark-驯化】一文搞懂Pyspark中的withColumnRenamed函数的使用技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文档获取…

常见的中间件漏洞:Tomcat

Tomcat简介 tomcat是一个开源而且免费的isp服务器,默认端口:8080,属于轻量级应用服务器。它可以实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。在历史上也披露出来了很多的漏洞,这里我们讲几个经典…

.NET_WPF_使用Livecharts数据绑定图表

相关概念 LiveCharts 是一个开源的图表库,适用于多种 .NET 平台,包括 WPF、UWP、WinForms 等。LiveCharts 通过数据绑定与 MVVM 模式兼容,使得视图模型可以直接控制图表的显示,无需直接操作 UI 元素。这使得代码更加模块化&#x…

JavaEE: Thread类以及线程状态

文章目录 Thread类等待一个线程 - join()获取当前线程的引用sleep 线程状态 Thread类 等待一个线程 - join() 操作系统,针对多个线程的执行,是一个"随机调度,抢占式执行“的过程. 线程等待就是在确定两个线程的"结束顺序”. 我们无法确定两个线程调度执行的顺序,但…

物理动力系统的强化学习:一种替代方法

物理动力系统的强化学习:一种替代方法 一、物理和非线性动力学 控制理论通过经典的、鲁棒的和最优的方法,使现代文明成为可能。炼油、电信、现代制造业等都依赖于它们。控制理论建立在物理方程提供的洞察力之上,例如从牛顿定律和麦克斯韦方程…

干货分享 | TSMaster 测试报告生成器操作指南

用户在基于 TSMaster 软件开发测试用例时,或需要使用 TSMaster 生成 HTML 报告时,需要使用 TSMaster 测试报告生成器。 1、Test_Report 说明 Test_Report 是目前 TSMaster 为客户提供的一套测试报告模板,里面集成了测试报告的打印输出、图片…

android13去掉安全模式 删除安全模式

总纲 android13 rom 开发总纲说明 目录 1.前言 2.问题排查 3.修改方法 3.1方法1 3.2方法2 4.测试 5.彩蛋 1.前言 Android设备上的安全模式是一种诊断模式,当设备无法正常启动时,它会启动到这个模式。在这个模式下,只有系统自带的程序和服务会被运行,所有的第三方…

谷粒商城实战笔记-139-商城业务-nginx-搭建域名访问环境一(反向代理配置)

文章目录 一,管理员身份修改hosts文件二,配置Nginx反向代理product服务1,Nginx配置文件简介2,配置Nginx将gulimall.com的请求转发到product服务 本节的主要内容是讲述如何实现通过域名 gulimall.com访问谷粒商城系统。 主要实现思…

IDEA右键新建时没有Java Class选项

项目场景: IDEA右键新建时没有Java Class选项 问题描述 IDEA右键新建时没有Java Class选项 原因分析: 提示:这里填写问题的分析: 例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Ha…

InstantMesh 论文学习

论文链接:https://arxiv.org/abs/2404.07191 代码链接:https://github.com/TencentARC/InstantMesh 解决了什么问题? 这项技术可以从单个视角的2D图像中生成3D模型,这有助于简化3D内容的创建过程。3D资产的生成可以应用于虚拟现…

Pytorch人体姿态骨架生成图像

ControlNet是一个稳定扩散模型,可以复制构图和人体姿势。ControlNet解决了生成想要的确切姿势困难的问题。 Human Pose使用OpenPose检测关键点,如头部、肩膀、手的位置等。它适用于复制人类姿势,但不适用于其他细节,如服装、发型和…

Altium designer学习笔记03 -原理图绘制

原理图绘制 1. 原理图页大小设置2.原理图格点的设置3. 原理图模板的应用4. 元件的放置5.元件属性的编辑6.元件的选择、移动、旋转、镜像6.1 元件的选择6.2 元件的移动6.3 元件的旋转6.3 元件的镜像 7.元件的复制/剪切/粘贴8.元件的排列与对齐9.绘制导线的导线属性设置10.放置网…

基于Comsol进行薄膜型声学超表面设计与可调节性研究

研究背景: 在隔声领域,高频噪声属于易于隔离的频段噪声,使用隔音板或隔音墙便可达到良好的隔声效果。而低频噪声由于具有波长大、穿透性强、传播距离远等特点,根据质量作用定律,传统的隔声材料需要通过不断增加材料的…

低代码与软件定制开发的完美结合:生产管理软件的高效解决方案

引言 在当今快速变化的商业环境中,企业需要灵活且高效的生产管理软件来应对日益复杂的生产流程和市场需求。传统的软件开发模式往往需要大量的时间和资源,而低代码平台的出现为企业提供了一种快速开发和部署应用的新途径。低代码平台通过直观的拖放界面和…

Mirillis Action v4.40 解锁版下载与免安装教程 (专业高清屏幕录像软件)

前言 Mirillis Action!(暗神屏幕录制软件)专业高清屏幕录像软件,被誉为游戏视频三大神器之一。这款屏幕录制软件和游戏录制软件,拥有三大硬件加速技术,支持以超高清视频画质录制桌面和实况直播,超清视频画…

如何抢先获得抖音外卖未开放城市的区域服务商资格?附系统搭建教程!

自抖音外卖上线以来,抖音外卖区域服务商的申请热度与日俱增,连带着抖音外卖区域服务商有哪些城市开放了等多个相关话题也成为了各大本地生活服务商交流群的重点讨论对象。 从申请情况来看,目前,抖音外卖区域服务商的申请渠道主要…

五种IO模型、多路转接IO:select,poll,epoll(reactor)(技术

之前的系统部分的基础IO:就是冯诺依曼结果中的访问磁盘,用内存作为输入输出缓冲区提高效率 现在我们要说的高级IO(input/output):访问的外设(网络中就是网卡):我们的发送和接收接收其实大部分时…