MySQL 中事务以及事务隔离级别的详解

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉点击跳转到网站

一、MySQL 中事务的理解
在这里插入图片描述

在这里插入图片描述
二、演示事务的基本使用

DROP TABLE t27;
-- 1.创建一张测试表
CREATE TABLE t27(
id INT,
`name` VARCHAR(32)
);

-- 2.开启事务
START TRANSACTION

-- 3.设置保存点
SAVEPOINT a
-- 执行DML操作
INSERT INTO t27 VALUES(100,'tom');
SELECT * FROM t27;

SAVEPOINT b
-- 执行DML操作
INSERT INTO t27 VALUES(200,'jack');

-- 回退到b
ROLLBACK TO b

-- 继续回退 a
ROLLBACK TO a

-- 如果这样,表示直接回退到事务开始的状态
ROLLBACK

三、回退事务和提交事务的介绍

在这里插入图片描述
四、MySQL事务细节讨论
在这里插入图片描述
对应的SQL语句如下

-- 讨论 事务细节

INSERT INTO t27 values(300,'milan'); -- 自动提交 commit

SELECT * FROM t27;

-- 如果开始一个事务,你没有创建保存点,你可以执行rollback
-- 默认就是回退到你事务开始的状态
START TRANSACTION
INSERT INTO t27 VALUES(400,'King');
INSERT INTO t27 VALUES(500,'scott');

ROLLBACK -- 直接回退到事务开始的状态

COMMIT

-- INNODB 存储引擎支持事务,MyISAM不支持		


-- 开启事务 START TRANSACTION 也可以这样写SET autocommit=off
SET autocommit=off

INSERT INTO t27 VALUES(400,'King');
INSERT INTO t27 VALUES(500,'scott');

SELECT * FROM t27;
ROLLBACK

五、MySQL中的事务隔离级别

1、事务隔离级别的介绍
在这里插入图片描述
2、脏读,不可重复度,幻读的理解
在这里插入图片描述

3、事务的4隔离级别如下
在这里插入图片描述
4、查看与设置隔离级别
在这里插入图片描述
对应的SQL代码如下

-- 演示mysql事务的隔离级别

-- 1.开了两个mysql的控制台
-- 2.查看当前mysql的隔离级别

SELECT @@transaction_isolation;

-- +-------------------------+
-- | @@transaction_isolation |
-- +-------------------------+
-- | REPEATABLE-READ         |
-- +-------------------------+

-- 3.把其中一个控制台的隔离级别设置 READ-UNCOMMITTED
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

CREATE TABLE `account`(
id INT,
name VARCHAR(32),
money INT
);
-- 查看当前会话隔离级别
SELECT @@transaction_isolation;

-- 查看系统当前隔离级别
SELECT @@global.transaction_isolation;

-- 设置当前会话隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

-- 设置系统当前隔离级别
SET GLOBAL TRANSACTION ISOLATION LEVEL [你设置的级别];

六、事务ACID的特性
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值