MySQL的事务

一:概述

在MySQL中的事务(transaction)是由存储引擎实现的,在MySQL中,只有lnnoDB存储引擎才支持事务;

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

事务用来管理DDL,DML,DCL操作,比如insert,update,delete语句,默认是自动提交的;

二:基本操作

 

create table account(
     id int primary key,
		 name varchar(20),
		 money double
);

insert into account values(1,'zhangsan',1000);
insert into account values(2,'lisi',1000);

-- 设置MySQL的事务为手动提交(关闭自动提交)
select @@autocommit;
set autocommit = 0;

-- id为1的账户转账给id为2的账户
-- 开启事务
begin;
update account set money = money - 200 where id = 1;
update account set money = money + 200 where id = 2;
-- 提交事务
commit;

-- 回滚事务
rollback; -- 撤销之前的操作(还未提交)

三:特性

四:隔离级别

(1)概述

lsolate,顾名思义就是将事务与另一个事务隔离开,为什么要隔离呢?如果一个事务正在操作的数据被另一个事务修改或删除了,最后的执行结果可能无法达到预期。如果没有隔离性还会导致其他问题。

 

(2)代码演示
-- 查看隔离级别
show variables like '%isolation%';


-- 设置隔离级别

-- 设置read uncommitted
set session transaction isolation level read uncommitted;
-- 这种隔离级别会引起脏读,A事务读取到B事务没有提交的数据

-- 设置read committed
set session transaction isolation level read committed;
-- 这种隔离级别会引起不可重复读,A事务在没有提交事务之前,看到数据不一致

-- 设置repeatable read
set session transaction isolation level repeatable read;
-- 这种隔离级别会引起幻读,A事务在提交事务之前和提交数据之后,看到数据不一致

-- 设置serializable
set session transaction isolation level serializable;
-- 这种隔离级别比较安全,但是效率低,A事务操作表时,表会被锁起来,B事务不能操作

相关推荐

  1. MySQL事务

    2024-02-10 21:42:01       61 阅读
  2. Mysql - 事务概念

    2024-02-10 21:42:01       30 阅读
  3. Mysql事务

    2024-02-10 21:42:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-10 21:42:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-10 21:42:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-10 21:42:01       87 阅读
  4. Python语言-面向对象

    2024-02-10 21:42:01       96 阅读

热门阅读

  1. 脑海模拟法实例场景之--日后创业篇.

    2024-02-10 21:42:01       46 阅读
  2. 蓝桥杯官网练习题(大臣的旅费)

    2024-02-10 21:42:01       53 阅读
  3. 单调队列优化DP,LeetCode1696. 跳跃游戏 VI

    2024-02-10 21:42:01       60 阅读
  4. 掌握XGBoost:特征工程与数据预处理

    2024-02-10 21:42:01       49 阅读
  5. c# 加密解密帮助类

    2024-02-10 21:42:01       51 阅读
  6. 通过神经网络模拟人类大脑的学习过程

    2024-02-10 21:42:01       55 阅读
  7. 利用python调用ChatGPT API示例

    2024-02-10 21:42:01       46 阅读
  8. 公司大数据展示模板【大屏可视化项目案例-23】

    2024-02-10 21:42:01       49 阅读
  9. 代码随想录算法——数组

    2024-02-10 21:42:01       49 阅读