08、MySQL-事务

news2024/9/23 17:24:17

目录

1、事务简介

2、事务操作

2.1 方式一

2.2 方式二

3、事务四大特性

4、并发事务问题

5、事务隔离级别


1、事务简介

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

2、事务操作

2.1 方式一

  1. 查看/设置事务提交方式:SELECT @@autocommit; SET @@autocommit=0;
  2. 提交事务:COMMIT
  3. 回滚事务:ROLLBACK
-- 转账操作(张三给李四转账1000)

-- 执行结果为1表示自动提交
SELECT @@autocommit;
-- 将当前会话的提交方式设置为0,表示设置为手动提交
SET @@autocommit = 0;

-- 查询张三账户余额
SELECT * FROM account WHERE name='张三';

-- 将张三账户的余额-1000
UPDATE account set money = money-1000 WHERE name='张三';

-- 将李四账户的余额+1000
UPDATE account set money = money+1000 WHERE name='李四';

-- 提交事务
COMMIT;

-- 回滚事务
ROLLBACK;

2.2 方式二

  1. 开启事务:START TRANSACTION 或 BEGIN
  2. 提交事务:COMMIT
  3. 回滚事务:ROLLBACK
-- 转账操作(张三给李四转账1000)

-- 开启事务
START TRANSACTION;

-- 查询张三账户余额
SELECT * FROM account WHERE name='张三';

-- 将张三账户的余额-1000
UPDATE account set money = money-1000 WHERE name='张三';

-- 将李四账户的余额+1000
UPDATE account set money = money+1000 WHERE name='李四';

-- 提交事务
COMMIT;

-- 回滚事务
ROLLBACK;

3、事务四大特性

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

4、并发事务问题

概念:A事务和B事务在同时操作某一个数据库甚至于某一张表的时候所引发的一些问题

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

5、事务隔离级别

查看事务隔离级别:

SELECT @@TRANSACTION_ISOLATION


设置事务隔离级别:

SET [ SESSION | GLOBAL] TRANSACTON ISOLATION LEVEL { READ UNCOMIMITTED I READ COMIMITED I REPEATABLE READ I SERIALIZABLE }

注意:事务的隔离级别越高,数据越安全,但是性能越低

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

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

相关文章

第27课 Scratch入门篇:放大的数字

放大的数字 故事背景: 舞台上输入 12345,数字竟然能显示很大,奇妙的数字如何显示的? 程序原理: 重点是如何利用克隆的知识,通过角色造型编号来显示具体的数字。 开始编程 1、在角色绘制中,…

Learn ComputeShader 05 Using noise in the shader

首先实现一个简单的噪声效果 实现原理也很简单,只是在每个线程使用随机函数获得一个随机值 float random (float2 pt) {const float a 12.9898;const float b 78.233;const float c 43758.543123;return frac(sin(dot(pt, float2(a, b))) * c ); }[numthreads(8…

STM32-USART时序与寄存器状态分析

一、时序分析 在UART(通用异步收发传输)通信中,信号线上的状态分为两种:逻辑1(高电平)和逻辑0(低电平)。在空闲状态下,数据线应保持逻辑高电平。UART协议中的各个信号位具…

拥抱变革:旗晟智能巡检机器人系统重塑高风险行业巡检模式

随着工业自动化的快速发展,特别是在石油、化工、煤矿等高风险行业中,传统的巡检方式已难以满足现代企业的需求。高频次、全天候、重复的人工巡检不仅效率低下,还面临着人身安全、数据准确性和运营成本等多方面的挑战。针对这些问题&#xff0…

大模型算力基础设施技术趋势、关键挑战与发展路径

文章目录 前言一、大模型技术发展趋势1.1 大语言模型1.2 多模态模型1.3 长序列模型1.4 混合专家模型二、大模型算力基础设施发展问题与挑战2.1 可用算力规模亟需算力利用效率提升2.2 集群性能提升依赖跨尺度、多层次互联三、大模型算力基础设施高质量发展路径总结前言 从大模型…

SpringCloud与SpringBoot之间的关系解析

Spring Cloud和Spring Boot是两个独立的项目,分别用于构建微服务架构和快速构建Java应用程序。它们之间有着密切的关系,可以相互配合使用。 Spring Boot简介 Spring Boot是一个用于快速构建Java应用程序的框架。它简化了Spring应用程序的开发过程&#x…

Redis,MongoDB,Memcached未授权访问漏洞(及其修复方法)

一. Redis Redis 默认情况下,会绑定在 0.0.0.0:6379 ,如果没有进⾏采⽤相关的策略,⽐如添加防 ⽕墙规则避免其他⾮信任来源 ip 访问等,这样将会将 Redis 服务暴露到公⽹上,如果在没有设 置密码认证(⼀般为空…

【haproxy】haproxy基本配置信息

一、负载均衡 LB: LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、…

新书速览|Python数据可视化:科技图表绘制(送书)

《Python数据可视化:科技图表绘制》 本书内容 《Python数据可视化:科技图表绘制》结合编者多年的数据分析与科研绘图经验,详细讲解Python语言及包括Matplotlib在内的多种可视化包在数据分析与科研图表制作中的使用方法与技巧。《Python数据可视化:科技图表绘制》分为…

WWDg 正点原子版

窗口看门狗 超时时间计算如下 f1系列,wwdg的时钟源频率是36mhz,时钟频率➗(4096*分频系数)就是得到实际的频率,也就是一秒钟能计数好多次,那么频率的倒数也就是计数一次需要的时间,所以频率的倒…

【Linux】阻塞信号|信号原理

常见的信号术语 信号递达(Delivery): 信号实际被执行处理的过程;(当一个信号被递达给进程时,该信号的处理动作已经开始执行实际执行信号的处理动作); 信号未决(Pending): 信号从产生…

快速上手Spring Boot

快速上手Spring Boot (qq.com)

凡图公益行:以爱之名,凡图家庭教育专家入户指导,引领残疾儿童勇敢启航 !

凡图公益行:以爱之名,凡图家庭教育专家入户指导,引领残疾儿童勇敢启航 ! 在社会的各个角落,有一群特殊的孩子。 他们因身体的局限承受着常人难以想象的挑战。 这些挑战不仅体现在日常生活的琐碎之中,更深…

react使用Lodash 库实现根据数组内对象的某属性排序

一、描述 根据数组内的对象的某个属性进行排序操作是很常见的方法,但是如果自己写一个方法,有可能出现错误的情况,且耗费时间,这里介绍一个第三方的工具“Lodash ”库,用这个来实现根据数组内对象的某属性排序特别方法…

LVS原理详解及部署

目录 一、LVS原理 1.LVS简介 2.LVS结构 3.IP负载均衡技术 4.LVS相关术语 二、LVS负载均衡四种工作模式 1.LVS-DR模式 2.LVS-NAT模式 3.LVS-TUN模式(了解) 4.FULL-NAT模式(了解) 三、LVS负载均衡十种调度算法 四、LVS部…

Open3D 使用Jet颜色映射渲染点云

目录 一、概述 1.1Jet颜色映射的定义 1.2Jet颜色映射的应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2渲染后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新&am…

书生大模型实战营闯关记录----第六关:大语言模型微调实战,LoRA和QLoRA微调,理论+Xtuner微调实操

文章目录 大语言模型微调基础1 基本概念1.1 Finetune简介1.1.1 Finetune的两种范式 1.2 微调技术1.2.1 LoRA简介1.2.2 QLoRA简介 1 微调前置基础2 准备工作2.2 创建虚拟环境2.3 安装 XTuner2.4 模型准备 3 快速开始3.1 微调前的模型对话3.2 指令跟随微调3.2.1 准数据文件3.2.2 …

ELK架构介绍

一、ELK简介 ELK 是由三个开源软件组成的,分别是:Elasticsearch、Logstash和Kibana,这三个软件各自在日志管理和数据分析领域发挥着重要作用。Elasticsearch提供分布式存储和搜索能力;Logstash负责数据收集和处理,而K…

如何简单粗暴的下载m3u8视频并转换为mp4格式

m3u8文件介绍 M3U(Moving Picture Experts Group Audio Layer 3 Uniform Resource Locator)这种文件格式是音视频文件的列表文件,是纯文本文件。你下载下来打开它,播放软件并不是播放它,而是根据它的记录找到网络地址…

react+taro的文字粘贴识别功能

效果图 <View className"components-page"><Textareastyle"font-size:12PX"className"textareaStyle"placeholderClass"placeholderStyle"placeholder"例&#xff1a;公司&#xff1a;xxxx公司, 电话:13*********, 地址…