• 5.12 数据库事务


    事务

    概念

    -- 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,

    -- 即可回滚到原来的状态,从而保证数据库数据完整性。

    -- 事务也就是要么都成功,要么都不成功

    -- 事务就是由一堆sql语句组成的

    使用

    create table user(
    id int primary key auto_increment,
    name char(32),
    balance int  #用户余额
    );
    
    insert into user(name,balance) values('海燕',200),
                                           ('哪吒',200),
                                           ('小哈',200);
    
    -- 如果都成功就执行commit,,,如果不成功就执行rollback。
    start transaction #开启事务
    update user set balance = 100 where name = '海燕';
    update user set balance = 210 where name = '哪吒';
    update user set balance = 290 where name = '小哈';  #sql语句错误就会报错了
    commit; #如果所有的sql语句都没有出现异常,应该执行commit
    
    start transaction
    update user set balance = 100 where name = '海燕';
    update user set balance = 210 where name = '哪吒';
    updatezzzz user set balance = 290 where name = '小哈';  #sql语句错误就会报错了
    rollback; #如果任意一条sql出现异常,都应该回归到初始状态

    事务注意点

    比如付款转账操作,比如 A 转账给 B ,需要两步操作

      A 账户减去 100元

      B 账户 加 100元

    倘若 A 账户减了,B账户因为网卡了没增加就会出现问题。此时使用事务是很好的运用场景 

    事务可以搭配异常捕捉一起使用 

  • 相关阅读:
    【转】逆向工程:让我们剥开软件的坚果
    分散/聚集IO(scatter/gather)及iovec结构体
    C10K并发连接_转
    AVL平衡二叉树
    软中断
    应用层timer_如何序列化timer
    应用层timer_libc_posix timer
    linux/unix 段错误捕获_转
    C/C++捕获段错误,打印出错的具体位置(精确到哪一行)_转
    linux内存查看及释放
  • 原文地址:https://www.cnblogs.com/shijieli/p/10344666.html
Copyright © 2020-2023  润新知