• MySQL:隔离性问题(脏读)&回滚演示


    1 脏读演示

    脏读: 一个事务读取到了另一个事务中尚未提交的数据

    1. 打开窗口登录 MySQL,设置全局的隔离级别为最低   

      1) 登录MySQL

           

           2) 使用db2 数据库

    use db2;

      3)   设置隔离级别为最低 读未提交

    set global transaction isolation level read uncommitted;

    2. 关闭窗口,开一个新的窗口A ,再次查询隔离级别   

      1) 开启新的 窗口A

        

       2) 查询隔离级别

    select @@tx_isolation;

    3. 再开启一个新的窗口 B 

    1) 登录数据库

    2) 选择数据库

    use db2;

    3) 开启事务

    start transaction;

    4) 查询

    select * from account;

    4. A窗口执行  

      1) 选择数据库

    use db2;

      2) 开启事务

    start transaction;

      3)执行修改操作

    -- tom账户 -500元 
    UPDATE account SET money = money - 500 WHERE NAME = 'tom';
    -- jack账户 + 500元 
    UPDATE account SET money = money + 500 WHERE NAME = 'jack';

    5. B窗口查询数据

      1) 查询账户信息

    select * from account;

     6. A窗口转账异常,进行回滚

    rollback;

    7. B窗口再次查询账户

    select * from account;

  • 相关阅读:
    装饰器
    目录和文件操作
    网络通信过程
    epoll并发
    laravel(包含lumen)框架中的跨域函数实例
    windows使用nginx
    nginx反向代理配置 其实很简单
    前端html页面使用marked点亮你的代码
    PHPWAMP开启SSL,PHPWAMP配置ssl证书
    php接收并存储base64位字符串图片
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15011832.html
Copyright © 2020-2023  润新知