美文网首页
数据库--事务

数据库--事务

作者: 何以解君愁 | 来源:发表于2022-05-27 20:33 被阅读0次

    事务把所有命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
    事务是一个不可分割的工作逻辑单元

    开启事务:START TRANSACION或BEGIN
    提交事务:COMMIT
    回滚事务:ROLLBACK

    事务四大特征:
    原子性A(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
    一致性C(Consistency):事务完成时,必须使所有数据保持一致状态
    隔离性I(lsolation):多个事务间,操作的可见性
    持久性D(Durability):事务一旦提交或回滚,它对数据库中数据的改变是永久的

    DROP TABLE IF EXISTS account;
    CREATE TABLE account(
      id INT PRIMARY KEY auto_increment,
      name VARCHAR(10),
      money DOUBLE(10,2)
    );
    
    INSERT INTO account(name,money) VALUES ('jack',10000),('jane',5000);
    
    SELECT id,name,money from account;
    UPDATE account SET money = 10000;
    
    BEGIN;
    
    UPDATE account set money = money - 500 where name = 'jack';
    
    -- 出错了
    
    UPDATE account set money = money + 500 where name = 'jane';
    
    SELECT id,name,money from account;
    
    -- 回滚事务
    ROLLBACK;
    
    SELECT @@autocommit;-- 查询事务默认提交方式,1为默认自动提交
    set @@atuocommit = 0; -- 设置事务为手动提交
    
    SELECT id,name,money FROM count;
    UPDATE account set money = money - 500 where name = 'jack';
    
    COMMIT; -- 提交进行了这一步后,其他地方才能查询到你的修改
    

    相关文章

      网友评论

          本文标题:数据库--事务

          本文链接:https://www.haomeiwen.com/subject/kwxwprtx.html