MySQL数据库事务

本文介绍了数据库事务的基本概念,包括ACID特性,如原子性、一致性、隔离性和持久性。详细阐述了不同隔离级别的含义,如未提交读、已提交读、可重复读和可串行化,并讨论了它们对数据一致性的影响。此外,还提到了事务的开始、提交、回滚操作以及如何查看和设置事务隔离级别。
摘要由CSDN通过智能技术生成

什么是事务
多条sql语句,要么全部成功,要么全部失败。MySQL的事务是在存储引擎层实现。 MySQL的事务有ACID
A 原子性(atomicity):一个事务必须被视为一个不可分割的单元。
C 一致性(consistency):数据库是从一种状态切换到另一种状态。
I 隔离性(isolation):事务在提交之前,对于其他事务不可见。
D 持久性(durablity):一旦事务提交,所修改的将永久保存到数据库。
事务命令
事务开始:start transaction
事务开始:begin
事务提交:commit
事务回滚:rollback

编写事务开始需使用start transaction或begin编写
在这里插入图片描述

编写完内容只能在本机中查看
在这里插入图片描述

其他机中内容不变
在这里插入图片描述

只有在使用commit命令后才可在其他机中查看更改的内容
在这里插入图片描述

如果不想提交可以使用回滚rollback来撤销
在这里插入图片描述

查看自动提交模式是自动还是手动
在这里插入图片描述

事务有4种隔离级别 事务在提交之前对其他事务可不可见

  1. read uncommitted(未提交读)
  2. read committed(已提交读)
  3. Repeatable read(可重复读)
  4. serializable可串行化)
    在这里插入图片描述

未提交读 事务中修改没有提交对其他事务也是可见的,俗称脏读
在这里插入图片描述

Session 设成
Transaction 事务
Isolation level 事务隔离等级

已提交读 多数数据库系统默认为此级别(MySQL不是)。已提交读级别为一个事务只能已提交事务所做的修改,也就是 解决了未提交读的问题
在这里插入图片描述

可重复读 解决了不可重复读的问题,数据库级别没有解决幻读的问题
在这里插入图片描述

可串行化 是最高隔离级别,强制事务串行执行,执行串行了也就解决问题了,这个I别只有在对数据一致性要求非常严格并且没有 并发的情况下使用
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值