• MySQL 事务


    目录

    TCL语言 

      事务的创建

     事务并发

     演示事务隔离级别


    TCL语言
     


     事务控制语言
      
      事务:一个或者一组sql语句组成一个执行单元,
      这个执行单元要么全部执行,要么都不执行
     
     事务的特点:
        1.原子性:事务是一个不可分割的工作单位
        2.一致性:事务必须使数据库从一个状态,转换成另一个一致性状态
        3.隔离性:一个事务的执行不能被其他事务干扰
        4.持久性:一个事务一旦提交,就是一个永久性的改变 


      事务的创建


        隐式事务:没有明显的开启和结束如delete inserte
        显式:事务又明显的开启结束标致,前提:必须先禁用自动提交
        SET autocommit=0;只对当前的事务有效

      
      步骤 
       1.开启事务 
          SET autocommit=0
       2.编写语句(增删改查)
       3.结束事务
         两种方式
          COMMIT 提交
          ROLLBACK 回归

    案例:转账
     

    1. SET autocommit=0;
    2. START TRANSACTION;#可以写可以不写
    3. UPDATE ACCOUNT SET balance=500 WHERE username=''
    4. UPDATE ACCOUNT SET balance=1500 WHERE username=''
    5. COMMIT;
    6. #rollback


     事务并发


     脏读:1读取了2没有提交的字段,若2回滚则1读取的是临时且无效的数据
     不可重复读:1两次读取一个字段结果不一样
     幻读:插入字段之前读取

    MySQL支持四种隔离级别

    /*                 脏读    不可重复读    幻读
     read uncommitted   1           1         1
     read committed      0          1          1
     repeatable read     0           0         1
     serializable        0           0          0

    */

     演示事务隔离级别

    在MySQL 8.0以上的版本要查看事务隔离级别需要

    select @@transaction_isolation;

    设置隔离级别为最低

     set session transaction isolation level read uncommitted;

    选择库然后开始实验

     

    开启一个事务

    1.在一个命令窗口设置隔离级别最低,同时修改数据,不提交也不回滚

    2.在另一个窗口 开启事务查询表格中所有事务(出现脏读

     

     

  • 相关阅读:
    手记系列之六 ----- 分享个人使用kafka经验
    TinyWebServer学习笔记-Config
    解答开发转软件测试岗的困惑
    最新泛微java面试题及答案
    Ubuntu不能上网解决办法
    NonlinearFactorGraph.h/NonlinearFactorGraph.cpp
    【能效管理】变电站综合自动化监控系统在35kV变电站中应用
    不花一分钱,在 Mac 上跑 Windows(M1/M2 版)
    epoll使用与原理
    OAuth2协议
  • 原文地址:https://blog.csdn.net/m0_66057675/article/details/125608618