MySQL学习笔记------事务

news2024/11/28 18:49:38

事务

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

事务操作

create table account(
    id int comment 'ID',
    name varchar(10) comment '姓名',
    money int comment '余额'
)comment '账户';
insert into account (id, name, money) VALUES (1,'张三',2000),(2,'李四',2000);
#转账操作
update account set money=money-1000 where name='张三';
update account set money=money+1000 where name='李四';

查看/设置事务提交方式

select @@autocommit;

set @@autocommit=0;#1自动提交,0手动提交

提交事务

commit;//事务提交方式设置为手动时,操作完需要提交,否则数据不发生变化,例如:

操作前

运行以下代码

#设置提交方式
set @@autocommit=0;
#转账操作
update account set money=money-1000 where name='张三';
update account set money=money+1000 where name='李四';

 表中数据为

提交后

回滚事务

rollback;

事务出现异常时,回滚数据恢复执行前

开启事务

start transaction或begin;//此时事务为手动提交

#查看提交方式
select @@autocommit;
#设置提交方式
set @@autocommit=0;
#提交
commit ;
#开启事务
start transaction ;
#回滚事务
rollback ;

 事务四大特性

原子性:事务是不可分割的最小操作单元,要么全部成功要么全部失败

一致性:事务完成时,必须使所有数据都保持一致状态

隔离性:数据库提供的隔离机制,保证事务在不受外部并发操作影响的独立环境运行

持久性:事务一旦提交,他对数据库中的数据的改变是永久性的

并发事务问题

脏读:一个事务读到另一个事务还没有提交数据

不可重复读:一个事务先后读取同一条记录,但两次读到的数据不同,称之为不可重复读(另一个事务修改并提交)

幻读:一个事务按照条件查询数据时,没有对应数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻影(另一个事务先插入并提交)

事务隔离级别

打错为规避

查看事务隔离级别

select@@transaction_isolation;

设置事务隔离级别

set [session|global] transaction isolation{read uncommitted | read committed | repeatable read| serializable}      // session会话,针对当前客户端有效

#查看隔离级别
select @@transaction_isolation;
#设置隔离级别
set session transaction isolation level read committed ;

 read commited可避免脏读:

未提交:

提交后:

 read committed不能避免不可重复读

其他

 其他可以用同样方法验证

repeatable read右边修改提交,左边使用commit之前,select*from account读取表数据不变

serializable只允许一次一个事务操作,只要提交完才能下一个事务操作

注意

隔离性越高,性能越差

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

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

相关文章

怎样恢复已删除的照片?教你3个方法,一键恢复!

很多人喜欢以拍照的形式记录生活,手机里的照片就很容易堆积成山,但当内存不够用时就不得不选择删除。可是这些美好的照片始终是很多人心中抹不去的记忆,那么该怎样恢复已删除的照片呢?下面几招,教你一键恢复&#xff0…

基于opencv的猫脸识别模型

opencv介绍 OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及…

使用美化方法设计项目主窗体(二)

使用美化方法设计项目主窗体 分析效果图的实现 效果图: 新建 Windows 窗体 新窗体命名:FrmMain.cs修改窗体的位置:StartPosition:CenterScreen窗体的无边框设计:FormBorderStyle:none修改窗体的大小&a…

JDK下载及安装说明

1.JDK下载 访问oracle官网:http://www.oracle.com 在首页点击Downloads,进入oracle软件下载页。 在下载页面,点击Java。 选择Java (JDK) for Developers,点击。 在 Java SE Downloads 页面,点击中间的DO…

如何挂载img镜像以及lvm分区

上一章节,我在win10下利用qemu安装了一个aarch64的 kylin-server-v10的ISO系统镜像包。安装时将系统安装到了虚拟硬盘kylin-server-v10.img 里,现在有个需求,要读出kylin-server-v10.img中文件系统的内容。 通过fdisk命令可以看到 kylin-ser…

Docker容器(六)网络配置与数据卷

一、高级网络配置 1.1概述 当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。 同时,Docker 随机分配一个本地未占用的私有…

位置编码学习

基本概念 关于位置编码的一切:https://kexue.fm/archives/8130#T5%E5%BC%8F 残差连接 Post Norm 关注深度 残差的意思是给前面的层搞一条“绿色通道”,让梯度可以更直接地回传,但是在Post Norm中,这条“绿色通道”被严重削弱…

助贷行业的业务增长工具:CRM客户管理系统的核心作用与应用流程

在当前助贷行业,企业如何更好地抓住客户需求、提高业务效率、优化服务体验一直是助贷企业关注的焦点。在这个背景下,一款优秀的CRM客户管理系统无疑成为了实现这些目标的关键。本文将探讨这样一款专为助贷行业打造的CRM客户管理系统,看它是如…

极市平台 | 综述:一文详解50多种多模态图像融合方法

本文来源公众号“极市平台”,仅用于学术分享,侵权删,干货满满。 原文链接:综述:一文详解50多种多模态图像融合方法 0 极市导读 本工作总结了50篇论文中Lidar和camera的多模态融合的一些概念方法。笔者结合原文以及自…

重庆餐饮设计公司排行榜曝光,这些企业值得关注!

在如今饮食文化多元化、餐饮产业蓬勃发展的时代,餐饮设计企业扮演着至关重要的角色。一个好的餐厅设计可以为顾客提供舒适、美观的用餐环境,也能够提升餐厅的整体形象和竞争力。重庆作为中国西南地区的经济中心和旅游胜地,餐饮业发展迅速&…

用二八定律分析零售数据,不就更直观了吗?

20%的商品贡献了80%的销售金额,你会不会想知道这些商品的销售金额、毛利、销售金额累计占比、毛利累计占比,会不会想知道这些商品在各个门店的销售表现?看是否能进一步提高销售金额,提高毛利。这样的报表该怎么做?奥威…

JVM高级篇之GC

文章目录 版权声明垃圾回收器的技术演进ShenandoahShenandoah GC体验Shenandoah GC循环过程 ZGCZGC简介ZGC的版本更迭ZGC体验&使用ZGC的参数设置ZGC的调优 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马…

Vue - 你知道Vue中computed和watch的区别吗

难度级别:中高级及以上 提问概率:70% 二者都是用来监听数据变化的,而且在日常工作中大部分时候都只是局限于简单实用,所以到了面试中很难全面说出二者的区别。接下来我们看一下,二者究竟有哪些区别呢? 先说computed,它的主要用途是监听…

Java中网络编程,Junit单元测试详解

文章目录 软件结构C/S结构B/S结构 概述三要素IP (银行的位置)端口 (银行中某个柜台号)协议 (填写取款单的规则)TCP通信程序TCP通信原理客户端发送数据服务端接收数据过程图三次握手 Junit单元测试概述常见的注解使用断言概述使用 软件结构 C/S结构 客户…

Windows深度学习环境----Cuda version 10.2 pytorch3d version 0.3.0

Requirements Python version 3.8.5Pytorch version: pytorch1.6.0 torchvision0.8.2 torchaudio0.7.0 cudatoolkit10.2.89pytorch3d version 0.3.0Cuda version 10.2 感觉readme文件里的不适配,跟pytorch官网不同 以前的 PyTorch 版本 |PyTorch的 # CUDA 10.2 c…

HDLbits 刷题 --Popcount255

A "population count" circuit counts the number of 1s in an input vector. Build a population count circuit for a 255-bit input vector. 译: 一个“population count”电路用于计算输入向量中1的数量。为一个255位的输入向量构建一个人口计数电路…

【免费使用AI工具】国内AI网站集合

文章目录 文心一言腾讯混元助手讯飞星火认知大模型:文心一格(绘图)云雀大模型(文本对话)智谱AI:(GLM大模型)百川智能(百川大模型)MiniMax(ABAB大模型)万维天工ChatGPT3.5镜像网站通义千问文心一言 https://yiyan.baidu.com/ 腾讯混元助手 微信搜索【腾讯混元助手】小…

金蝶BI方案的报表,主打做得快、易理解

金蝶做数据分析报表慢、步骤多、数据不够直观?但奥威-金蝶BI方案的报表就不一样了,不仅做得快,还十分好理解,因为它做出来的是随时可以按需自助的BI智能数据可视化分析报表。 有多快? 注册奥威BI SaaS平台&#xff0…

提升Python网络编程效率:深入学习furl库

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 furl 是一个 Python 库,用于处理 URL。它提供了一个简洁而强大的接口,用于构建、解析和操作 URL。本文章介绍下 furl 库的使用。 &a…

01 _ 分布式缘何而起:从单兵,到游击队,到集团军

这里先来聊聊什么是分布式。 与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。 这里将介绍分布式的起源,是如何从单台计算…