MySQL中的事务

MySQL中的事务

    • 简介
    • 操作
      • 方式一
      • 方式二
    • 事务四大特性(ACID)
    • 并发事务问题
    • 事务的隔离级别

简介

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,Mysql会立即隐式的提交事务

操作

模拟转账操作(张三给李四转钱)
1.查询张三账户余额
select * from account where name = '张三';
2.将张三的账户余额-1000
update account set money = money - 1000 where name = '张三';
3.将李四的账户余额+1000
update account set money = money + 1000 where name = '李四';

方式一

查看/设置事务提交方式

select @@autocommit; //自动提交
set @@autocommit = 0;  //手动提交

提交事务

commit;

回滚事务

rollback;

再次演示

select @@autocommit;

set @@autocommit = 0 ; //设置为手动提交
模拟转账操作(张三给李四转钱)
1.查询张三账户余额
select * from account where name = '张三';
2.将张三的账户余额-1000
update account set money = money - 1000 where name = '张三';
3.将李四的账户余额+1000
update account set money = money + 1000 where name = '李四';


//提交事务
commit;   //只有在执行commit之后才会进行刷新操作

//回滚事务
roback;    //如果事务出现错误就不用再提交了,执行回滚

方式二

开启事务

start transaction 或 begin ;

提交事务

commit;

回滚事务

rollback;

再次操作

start transaction;

1.查询张三账户余额
select * from account where name = '张三';
2.将张三的账户余额-1000
update account set money = money - 1000 where name = '张三';
3.将李四的账户余额+1000
update account set money = money + 1000 where name = '李四';

提交事务
commit;

回滚事务
rollback;

事务四大特性(ACID)

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

并发事务问题

问题描述
脏读一个事务读到另外一个事务还没有提交的数据
不可重复读一个事务先后读取同一条记录,但是两次读取的数据不同,称之为不可重复读
幻读一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,发现这行数据已经存在了,好像出现了"幻影"

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

在这里插入图片描述

事务的隔离级别

隔离级别脏读不可重复读幻读
read uncommitted
read mommittedx
repeatable table(默认)xx
serializablexxx
查看事务隔离级别
select @@transaction_isolation;

设置事务隔离级别
set [ session | global ] transaction isolation level { read uncommitted | read committed | repeatable read | serializable}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文读懂:代码签名证书详解

背景:代码签名证书是使得软件开发商能对其软件代码进行数字签名,从而让该证书为软件开发商提供了一个理想的安全环境,也同样对其软件代码进行数字签名。 原理是通过对代码的数字签名来标识软件来源以及软件开发者的真实身份,保证…

SQL 多表查询

文章目录 多表查询的分类等值连接非等值连接自连接非自连接内连接外连接左外连接右外连接满外连接 SQL连接 JOINSQL99 语法新特性 自然连接 NATURAL JOIN & USING 多表查询的分类 等值连接 VS 非等值连接自连接 VS 非自连接内连接 VS 外连接 等值连接 关联的表有连接字段…

ThreadLocal是什么,ThreadLocal源码分析,ThreadLocal应用,ThreadLocal内存泄漏

ThreadLocal是什么,ThreadLocal源码分析,ThreadLocal应用,ThreadLocal内存泄漏 目录 本文导读 一、ThreadLocal概述 二、ThreadLocal源码解析 三、ThreadLocal在多线程并发中的应用 四、ThreadLocal与内存泄漏问题 总结 博主v&#xf…

MATLAB 四点确定唯一球面参数(44)

MATLAB 四点确定唯一球面参数(44) 一、算法简介二、算法实现1.代码2.结果一、算法简介 根据给定的四个点,快速拟合获取球的中心和半径,具体代码如下: 二、算法实现 1.代码 代码如下(示例): point1 = [0.0, 0.0, 0.0]

Matlab进阶绘图第43期—双三角曲面图

在《Matlab论文插图绘制模板第68期—三角曲面图(Trisurf)》中,我分享过三角曲面图的绘制模板。 然而,有的时候,需要在一张图上绘制两个及以上的三角曲面图,且每个三角曲面图使用不同的配色方案。 在Matlab中,一张图上…

python 基础知识点(蓝桥杯python科目个人复习计划62)

今日复习内容:做题 例题1:付账问题 问题描述: 几个人一起出去吃饭是常有的事,但在结账的时候,常常会出现一些争执。 现在有n个人出去吃饭,他们总共消费了S元,其中第i人带了ai元。幸运的是&a…

【Vue】.sync 修饰符作用

文章目录 基本用法 基本用法 官方文档是这样介绍的:.sync 修饰符 简单来说就是实现父子组件数据之间的双向绑定,当子组件修改了一个 props 的值时,也会同步到父组件中,实现子组件同步修改父组件,与v-model类似。类别在…

【Python】新手入门学习:什么是相对路径?

【Python】新手入门学习:什么是相对路径? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得…

如何选择好用的ai写作软件?

如何选择好用的ai写作软件?ai写作软件的出现是随着ai技术的迅猛发展下的产物,它主要应用于内容创作领域,可以是文章内容创作、视频内容创作、绘图创作等等,不同的ai写作软件可能应用的领域不同,但也有的ai写作软件应用…

地平线旭日x3派部署yolov5--全流程

地平线旭日x3派部署yolov5--全流程 前言一、深度学习环境安装二、安装docker三、部署3.1、安装工具链镜像3.2、配置天工开物OpenExplorer工具包3.3、创建深度学习虚拟空间,安装依赖:3.4、下载yolov5项目源码并运行3.5、pytorch的pt模型文件转onnx3.6、最…

网络安全行业真的内卷了吗?

有一个特别流行的词语叫做“内卷”: 城市内卷太严重了,年轻人不好找工作;教育内卷;考研内卷;当然还有计算机行业内卷…… 这里的内卷当然不是这个词原本的意思,而是“过剩”“饱和”的替代词。 按照网络安…

场效应管(MOSFET)如何选型?一文详解选型要点

一、MOSFET简介 场效应管(MOSFET)也叫场效应晶体管,是一种单极型的电压控制器件,不但有自关断能力,而且具备输入电阻高、噪声小、功耗低、驱动功率小、开关速度高、无二次击穿、安全工作区宽等特点,MOSFET在组合逻辑电路、放大器…

国创证券|lpr下调25个基点是多少?lpr下调对股市债市有什么影响?

lpr是借款市场报价利率,其间lpr下调25个基点是指lpr利率下降0.25%,比方,下调之前五年期以上的lpr为4.2%,下调25个基点之后,变为3.95%。 lpr下调对股市债市存在以下影响: 1、券商股 借款利率下降&#xf…

小马智行与卢森堡签署自动驾驶合作谅解备忘录

近日,自动驾驶企业小马智行宣布与卢森堡大公国政府签署谅解备忘录,促进自动驾驶汽车及技术在卢森堡的发展。该文件由小马智行联合创始人、CEO彭军与卢森堡经济部长Lex Delles共同签署,这也标志着小马智行与卢森堡政府就推动该地区的自动驾驶研…

智能警用装备柜管理系统|智能化可视化管理

智能警用装备柜管理系统|智能化可视化管理 我司(JIONCH集驰)警用装备管理系统(智装备DW-S304)是依托互云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对警用装备进行统一管理、分析的信息化、智能化、规范化的系统。 智…

解密 JavaScript:降低逆向接口成本的实用技巧

### 一个简单的js加密代码示例 /* * 加密工具已经升级了一个版本,目前为 jsjiami.com.v6 ,主要加强了算法; * 已经打算把这个工具基础功能一直免费下去。还希望支持我。 * 另外 jsjiami.com.v6 已经强制加入校验,注释可以去掉,但…

污水磷资源回收工艺及海普树脂除杂

#污水磷资源回收工艺及海普树脂除杂 ​磷矿资源也是一种不可再生资源,目前磷矿产业仍在扩张,随着新能源行业磷酸铁锂电池的大范围应用,对磷的需求量仍在增加。基于污水中相对较高的磷负荷,从污泥焚烧灰分中回收磷显得十分有必要&a…

基于BS架构的饰品购物平台设计与实现(程序+文档+数据库)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

feign调用,如何通过指定的服务名来调用,或者通过指定的url调用,方便调用本地的服务,或者调用指定的测试环境的服务

1. feign client 通过服务名来调用 InnerOssEndpointClient 类是 feign client方法声明的类 name 就是服务名,这里默认是通过服务名来调用。服务名在哪呢,在注册的nacos注册中心能看到 1.1 调用方的代码 关键看 FeignClient注解的代码,name…

golang学习随便记16-反射

为什么需要反射 下面的例子中编写一个 Sprint 函数,只有1个参数(类型不定),返回和 fmt.Fprintf 类似的格式化后的字符串。实现方法大致为:如果参数类型本身实现了 String() 方法,那调用 String() 方法即可…