MySQL五 | 事务

目录

事务操作

查看/设置事务提交方式

方式一

提交事务

回滚事务

方式二

开启事务

提交事务

回滚事务

事务四大特性(ACID)

事务的隔离级别

查看事务的隔离级别

设置事务隔离级别


事务操作

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

查看/设置事务提交方式

方式一

SELECT @@autocommit;#如果是自动提交则为1
SET @@autocommit 0;#改为手动提交

提交事务

COMMIT;

回滚事务

ROLLBACK;

方式二

开启事务

START TRANSACTION 或者BEGIN;

提交事务

COMMIT;(事务执行成功)

回滚事务

ROLLBACK;(事务执行失败)

事务四大特性(ACID)

  1. 原子性:事务是不可分割的最小操作单元,要么全部成功,要么全部失败
  2. 一致性:事务完成时,必须使所有的数据都保持一致状态
  3. 隔离性:数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行
  4. 持久性:事务一旦提交或回滚,他对数据库中的数据的改变就是永久的

事务的隔离级别

并发事务问题

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

不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称不可重复读

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

隔离级别 脏读 不可重复读 幻读
Read uncommitted    √            √    √
Read committed    ×            √    √
Repeatable Read(默认)    ×            ×    √
Serializable    ×            ×    ×

查看事务的隔离级别

SELECT @@TRANSACTION_ISOLATION;

设置事务隔离级别

SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED(性能高,不安全)|READ COMMITTED|REPEATABLE READ|SERIALIZABLE(安全,性能低)}
#session代表会话级别,global代表对所有窗口有效

相关推荐

  1. MySQL | 事务

    2023-12-07 07:10:03       62 阅读
  2. MySQL之数据库事务机制学习笔记(

    2023-12-07 07:10:03       28 阅读
  3. Mysql事务

    2023-12-07 07:10:03       78 阅读
  4. MySQL 事务

    2023-12-07 07:10:03       56 阅读

最近更新

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

    2023-12-07 07:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 07:10:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 07:10:03       82 阅读
  4. Python语言-面向对象

    2023-12-07 07:10:03       91 阅读

热门阅读

  1. 强制删除异常驱动设备

    2023-12-07 07:10:03       71 阅读
  2. 【C语言】7-38 吉老师的回归 分数 15

    2023-12-07 07:10:03       57 阅读
  3. web基础与http协议

    2023-12-07 07:10:03       61 阅读
  4. 数据结构和算法专题---6、定时算法与应用

    2023-12-07 07:10:03       49 阅读
  5. Mybatis缓存机制

    2023-12-07 07:10:03       66 阅读