⑨【MySQL事务】事务开启、提交、回滚,事务特性ACID,脏读、幻读、不可重复读。

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

MySQL事务

  • ⑨【事务】
    • 1. 事务概述
    • 2. 操作事务
    • 3. 事务四大特性(ACID)
    • 4. 脏读、幻读、不可重复读
    • 5. 事务隔离级别


⑨【事务】


1. 事务概述

事务

  • 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,这些操作要么同时成功,要么同时失败
  • == MySQL的事务是默认自动提交的,当执行一条DML语句(对表字段进行增删改),MySQL会立即隐式地提交事务。 ==



2. 操作事务

MySQL操作事务

  • 查看 / 设置事务提交方式@@autocommit

    • SELECT @@autocommit;  #查看事务提交方式
      SET @@autocommit = 0; #修改事务提交方式
      -- @@autocommit = 0 手动提交
      -- @@autocommit = 1 自动提交
      
  • ②提交事务

    • COMMIT;
      
  • ③回滚事务

    • ROLLBACK;
      
  • ④提交事务

    • START TRANSACTION;
      -- 或者
      BEGIN;
      



3. 事务四大特性(ACID)

事务特性

  • 原子性(Atomicity): 事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
  • 一致性(Consistency): 事务完成时,必须使所有的数据都保持一致状态。
  • 隔离性(Isolation): 数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
  • 持久性(Durability): 事务一旦提交或回滚,它对数据库数据的改变就是永久的。



4. 脏读、幻读、不可重复读

并发事务问题

  • ①脏读: 一个事务读到另一个事务还没有提交的数据。
  • ②不可重复读: 一个事务先后读取同一条记录,但两次读取的数据不一致。
  • ③幻读: 一个事务按照条件查询数据时,没有对应的数据,但是在插入数据时,又发现这行数据已经存在,像是出现了“幻影”。



5. 事务隔离级别

  • MySQL默认隔离级别 —— Repeatable Read

  • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • ①查看事务隔离级别:

    • SELECT @@transaction_isolation;
      
  • ②设置事务隔离级别:

    • SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
      -- SESSION表示仅在当前客户端窗口有效。
      -- GLOBAL对所有客户端的会话窗口有效。
      -- []中的内容为可选项,可以不写。
      -- {}中的内容为必选项,必须任选其一。
      




在这里插入图片描述

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

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

相关文章

u系 kdump查看配置

V4 桌面: 如果能上外网配置网络源安装软件包: 会自动安装以下几个包(不能连接外网直接安装一下几个包即可): 查看kdump配置: Kdump-config show 可以看到USE_KDUMP1 ,生成的vmcore文件在/var…

Linux:给openlab搭建web网站

httpd服务器建立综合练习 建立网站需求: 1.基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站, (1)、基于 www.openlab.com/stud…

技术贴 | SQL 执行 - 执行器优化

本期技术贴主要介绍查询执行引擎的优化。查询执行引擎负责将 SQL 优化器生成的执行计划进行解释,通过任务调度执行从存储引擎里面把数据读取出来,计算出结果集,然后返回给客户。 在关系型数据库发展的早期,受制于计算机 IO 能力的…

基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 因为之前不支持在流程设计器进行自定义业务表单的关联选择,所以这部分实现这个。 1、前端 对…

PyTorch技术和深度学习——三、深度学习快速入门

文章目录 1.线性回归1)介绍2)加载自由泳冠军数据集3)从0开始实现线性回归模型4)使用自动求导训练线性回归模型5)使用优化器训练线性回归模型 2.使用torch.nn模块构建线性回归模型1)使用torch.nn.Linear训练…

基于springboot实现校园医疗保险管理系统【项目源码】

基于springboot实现校园医疗保险管理系统演示 系统开发平台 在线校园医疗保险系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其…

linux高级篇基础理论(详细文档)二

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

自定义注解实现服务的动态开关

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 🧑‍💻🧑‍💻🧑‍💻Make things differe…

多级缓存之实现多级缓存

多级缓存的实现离不开Nginx编程,而Nginx编程又离不开OpenResty。 1. OpenResty快速入门 我们希望达到的多级缓存架构如图: 其中: windows上的nginx用来做反向代理服务,将前端的查询商品的ajax请求代理到OpenResty集群 OpenRest…

【教3妹学编程-算法题】K 个元素的最大和

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开发。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&#x…

2.5 Windows驱动开发:DRIVER_OBJECT对象结构

在Windows内核中,每个设备驱动程序都需要一个DRIVER_OBJECT对象,该对象由系统创建并传递给驱动程序的DriverEntry函数。驱动程序使用此对象来注册与设备对象和其他系统对象的交互,并在操作系统需要与驱动程序进行交互时使用此对象。DRIVER_OB…

半导体应用系统一些小知识收集(stripwafer mapping,EAPscada)

单一元件追踪Single Device Traceability ,指的是在制造封装流程中对任何一个点上的任何一台单一设备进行实时追踪,并将相关历史数据储存进数据库服务器,同时在需要的情况下能够查询这些历史数据的能力。 SDT系统的核心特性可以被概括为如下: Wafer Map …