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;
    
    
  • 相关阅读:
    电路原理图基本知识概述(转)
    数字电路笔记
    模拟电路笔记
    ROS笔记一
    STM32笔记三
    电子元件笔记
    STM32笔记二
    C语言相关知识
    利用sql报错帮助进行sql注入
    kali下纯文本与窗口环境切换
  • 原文地址:https://www.cnblogs.com/kgwei520blog/p/13783010.html
Copyright © 2011-2022 走看看