【MySQL】MySQL的事务
创始人
2025-05-30 02:37:12

目录

概念

什么是事务? 

理解事务

事务操作

事务的特性

事务的隔离级别 

事务的隔离级别-操作 

概念

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查

询、更新和删除数据。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在

许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。 用户可以

根据不同的需求为数据表选择不同的存储引擎 可以使用 SHOW ENGINES 命令 可以查看Mysql的

所有执行引擎我们 可以到 默认的执行引擎是innoDB 支持事务,行级锁定和外键。

什么是事务? 

在MySQL中的事务(Transaction)是由存储引擎实现的,在MySQL中,只有InnoDB存储引擎才

支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全

部不执行。 事务用来管理 DDL、DML、DCL 操作,比如 insert,update,delete 语句,默认是自动

提交的。

理解事务

在银行转账时,必须保证转账绝对安全,这时需要事务参与:

update account set money = money - 200 where id = 1; 
update account set money = money + 200 where id = 2;

 假如在第一次update之后,出现了意外、异常,没有执行第二次update,这时转账是否会出现异

常?

事务操作

MySQL的事务操作主要有以下三种:

1、开启事务:Start Transaction 任何一条DML语句(insert、update、delete)执行,标志事务的开

启 命令:BEGIN 或 START TRANSACTION

2、提交事务:Commit Transaction 成功的结束,将所有的DML语句操作历史记录和底层硬盘数据

来一次同步 命令:COMMIT

3、回滚事务:Rollback Transaction 失败的结束,将所有的DML语句操作历史记录全部清空 命

令:ROLLBACK

之前的所有SQL操作其实也有事务,只是MySQL自动帮我们完成的,每执行一条SQL时MySQL就

帮我们自动提交事务,因此如果想要手动控制事务,则必须关闭MySQL的事务自动提交。 在

MySQL中直接用 SET 来改变 MySQL 的自动提交模式:

set autocommit=0 禁止自动提交 
set autocommit=1 开启自动提交
create database if not exists mydb12_transcation;
use mydb12_transcation;
-- 创建账户表
create table account(id int primary key, -- 账户idname varchar(20), -- 账户名money double -- 金额
);--  插入数据
insert into account values(1,'zhangsan',1000);
insert into account values(2,'lisi',1000);
-- 设置MySQL的事务为手动提交(关闭自动提交)
select @@autocommit;
set autocommit = 0;-- 模拟账户转账
-- 开启事务 
begin;
update account set money = money - 200 where name = 'zhangsan';
update account set money = money + 200 where name = 'lisi';
-- 提交事务
commit;-- 如果转账中的任何一条出现问题,则回滚事务
rollback;

事务的特性

事务的隔离级别 

solate,顾名思义就是将事务与另一个事务隔离开,为什么要隔离呢?如果一个事务正在操作的数

据被另一个事务修改或删除了,最后的执行结果可能无法达到预期。如果没有隔离性还会导致其他

问题。

读未提交(Read uncommitted)   一个事务可以读取另一个未提交事务的数据,最低级别,任何情

况都无法保证,会造成脏读。

读已提交(Read committed)    一个事务要等另一个事务提交后才能读取数据,可避免脏读的发生,

会造成不可重复读。

可重复读(Repeatable read)     就是在开始读取数据(事务开启)时,不再允许修改操作,可避免

脏读、不可重复读的发生,但是会造成幻读。

串行(Serializable)    是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、

不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

Mysql的默认隔离级别是Repeatable read。

事务的隔离级别-操作 

-- 查看隔离级别 
show variables like '%isolation%’; -- 设置隔离级别
/*
set session transaction isolation level 级别字符串
级别字符串:read uncommitted、read committed、repeatable read、serializable
*/
-- 设置read uncommitted
set session transaction isolation level read uncommitted;-- 设置read committed
set session transaction isolation level read committed;-- 设置repeatable read
set session transaction isolation level repeatable read;-- 设置serializable
set session transaction isolation level serializable;

相关内容

热门资讯

川藏线最新路况(川藏线实时路况... 本篇文章极速百科给大家谈谈川藏线最新路况,以及川藏线实时路况播报对应的知识点,希望对各位有所帮助,不...
洛克王国VIP的特权要详细(洛... 本篇文章极速百科给大家谈谈洛克王国VIP的特权要详细,以及洛克王国vip利益最大化对应的知识点,希望...
华为OD机试 - 货币单位换算... 最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真...
ZIC摩托车赛是什么样的竞争?... 本篇文章极速百科给大家谈谈ZIC摩托车赛是什么样的竞争?王一博为什么出名?,以及王一博赛摩托车视频对...
私家车广告怎么贴接车身广告才不... 今天给各位分享私家车广告怎么贴接车身广告才不违法的知识,其中也会对私家车贴广告属于哪个部门管进行解释...
图形视图框架的坐标 图形视图基于笛卡尔坐标系;项目在场景中的位置和几何图形由两组数字表示:X 坐标和 Y ...
SPSS 26安装包下载及详细... [软件名称]:SPSS 26 [软件大小]: 566 MB [安装环境]: Win11/Win 10...
C语言/文件 博客制作不易,欢迎各位点赞👍+收藏⭐+关注一、文件缓冲...
从《超级马里奥酷跑》看马里奥的... 今天给各位分享从《超级马里奥酷跑》看马里奥的发展史的知识,其中也会对超级马里奥演变史进行解释,如果能...
包含fbiwarning是什么... 本篇文章极速百科给大家谈谈fbiwarning是什么梗,以及对应的知识点,希望对各位有所帮助,不要忘...
奥迪a3保养周期,奥迪a3保养... 今天给各位分享奥迪a3保养周期,奥迪a3保养费用明细表的知识,其中也会对奥迪a3保养周期及费用进行解...
洋县这140名车主请注意,交警... 本篇文章极速百科给大家谈谈洋县这140名车主请注意,交警喊你来一趟!,以及洋县车祸最新对应的知识点,...
Faster RCNN 对血液... 目录 1. 介绍 2. 工具函数介绍 utils 2.1 xml 文件的读取 get_label_f...
Progress ThemeB... Progress ThemeBuilder updated Crack   增加了对jQuery的K...
特大交通事故的标准是什么的简单... 本篇文章极速百科给大家谈谈特大交通事故的标准是什么,以及对应的知识点,希望对各位有所帮助,不要忘了收...
江淮全新SUV实车亮相,有望定... 本篇文章极速百科给大家谈谈江淮全新SUV实车亮相,有望定价在10万左右,以及江淮最新款suv对应的知...
10万以内家用车哪款好五款热门... 本篇文章极速百科给大家谈谈10万以内家用车哪款好五款热门10万以内家用车介绍,以及十万以内家用车什么...
运动鞋可以水洗吗(耐克运动鞋可... 本篇文章极速百科给大家谈谈运动鞋可以水洗吗,以及耐克运动鞋可以水洗吗对应的知识点,希望对各位有所帮助...
Spring学习(五) 事物管理: 一、事物管理的回顾: 1、事物的概念: 事物&...
python练习题5.0 1、给定一个包含n+1个整数的数组nums,其数字在1到n之间(...
django-celery-b... 一、创建django项目和app 1、安装定时任务第三方包 pip install django-c...
立刻有是什么意思(唐人街探案2... 今天给各位分享立刻有是什么意思的知识,其中也会对唐人街探案2立刻有是什么意思进行解释,如果能碰巧解决...
上海车zheng震最佳地点(上... 今天给各位分享上海车zheng震最佳地点的知识,其中也会对上海车辆振动检测电话进行解释,如果能碰巧解...
秦国历代国君及姓名皇帝列表(秦... 今天给各位分享秦国历代国君及姓名皇帝列表的知识,其中也会对秦国历代国君及姓名介绍进行解释,如果能碰巧...
摩托车高温后自动熄火baiku... 本篇文章极速百科给大家谈谈摩托车高温后自动熄火baiku白酷,以及摩托发动机高温自动熄火对应的知识点...
REDIS18_ ①. ZipList是一种特殊的"双端链表" ,由一系列特殊编码的连续内存块组成。可以在任意一端进行...
外贸优化排名稳定吗?外贸网站如... 外贸优化排名稳定吗? 答案是:稳定。 当然这是针对持续做谷歌SEO排名优...
浅谈C库函数——memcpy、...   💌内容专栏:【C语言】进阶部分 💌本文概括&#...
oracle 删除表空间(ta... – 创建表空间; Create tablespace xihu datafile ‘d:\oracl...
北京租电脑(北京租电脑多少钱一... 本篇文章极速百科给大家谈谈北京租电脑,以及北京租电脑多少钱一个月对应的知识点,希望对各位有所帮助,不...