zoukankan      html  css  js  c++  java
  • mysql-14-transaction

    #TCL
    /*
    事务控制语言
    事务:一个或一组sql语句组成一个执行单元,每条sql语句相互依赖
    这个执行单元要么全部执行、要么全部失败后回滚
    
    案例:转账
    
    事务的acid属性
    1.原子性:事务时一个不可分割的工作单位
    2.一致性:事务必须使数据库从一个一致性状态转换为另一个一致性状态
    3.隔离性:一个事务的执行不能被其他事务干扰(但也要看隔离级别)
    4.持久性:一个事务一旦提交,改变是永久性的
    */
    
    show engines;  # innodb支持事务
    
    #事务的创建
    #隐式事务:没有明显的开启和结束的标记。比如insert, update, delete语句
    #显式事务:具有明显的开启和结束的标记,必须先设置自动提交功能为禁用
    /*
    set autocommit=0; 开启事务
    start transaction;  可选的
    语句1;
    语句2;
    savepoint point1;  保留点
    ...
    commit/roll back;  结束事务  roll back to point1 回滚到指定保留点
    
    delete可以回滚,truncate不能回滚
    */
    
    USE test;
    
    create table if not exists account(
    	id int primary key auto_increment,
        username varchar(20),
        balance int
    );
    
    insert into account
    values(null, '张无忌', 1000), (null, '赵敏', 1000);
    select * from account;
    
    set autocommit=0;
    start transaction;
    update account set balance=1000 where username='张无忌';
    update account set balance=1500 where username='赵敏';
    commit;
    
    select * from account;
    
    drop table account;
    

      

  • 相关阅读:
    -_-#【缓存】Content-Type 错误
    ♫【事件】事件处理程序
    -_-#【Node】Express 400 Error: ENOENT, open
    【JS】定位
    【JS】壹零零壹
    洛谷—— P1018 乘积最大
    洛谷—— P1017 进制转换
    洛谷——P1011 车站
    洛谷——P2241 统计方形(数据加强版)
    洛谷——P1548 棋盘问题
  • 原文地址:https://www.cnblogs.com/chaojunwang-ml/p/13261660.html
Copyright © 2011-2022 走看看