zoukankan      html  css  js  c++  java
  • mysql(五)事务

    事务

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

    Mysql 中用 BEGIN, ROLLBACK, COMMIT 来实现事务

    BEGIN 开始一个事务 ROLLBACK 事务回滚 COMMIT 事务确认
    
    例子:张三账户转账转出 100 元到李四的账户 
    1、张三账户减去 100 元 
    2、李四账户增加 100 元
    
    
    begin;    // 开启一个事务;
    
    UPDATE myusers SET balance=balance-100 WHERE id=1;
    UPDATE myusers SET balance=balance+100 WHERE id=2;
    
    rollback;  // 如果有失败执行回滚;
    commit;   // 提交之后才更新数据;
    
    

    锁 lock

    Mysql 中的锁有表级锁和行级锁,这里主要讲最常用的表级锁

    1、添加读锁

        可以并发读,但是不能并发写,读锁期间,没释放锁之前不能进行写操作
        使用场景:读取结果集的最新版本,同时防止其他事务产生更新该结果集 主要用在需要数据依存关系时确认某行记录是否存在,并确保没有人对这个记录进行 UPDATE 或者 DELETE 操作
    
    lock table user read;
    
    
    unlock tables;
    
    

    2、添加写锁

    只有锁表的用户可以进行读写操作,其他用户不行 (并发下对商品库存的操作)
    多人抢一个商品
    lock table user write; 
    
    
    unlock tables;
    
    
  • 相关阅读:
    【CF833E】Caramel Clouds
    【LG2183】[国家集训队]礼物
    (ex)Lucas总结
    【CF527C】Glass Carving
    【CF833D】Red-Black Cobweb
    【LG4631】[APIO2018]Circle selection 选圆圈
    volatile梳理
    ThreadLocal梳理
    java线程基础梳理
    TCP/IP
  • 原文地址:https://www.cnblogs.com/kgwei520blog/p/13783010.html
Copyright © 2011-2022 走看看