• Oracle--事务


    事务

    在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么完全成功执行,完成整个工作单元操作,要么一点也不执行。

      主要作用:确保数据库的完整性。

      commit 提交   rollback回滚

    例如:

    银行转账(业务) 张三 转账1000给李四: 执行多少条SQL, 最少两条SQL
      1) update 张三的余额 -1000
      2) update 李四的余额, + 1000

    --使用PL/SQL 模拟转账
    begin
       --张三余额 -60000
       update account set balance = balance - 60000  where name ='zs';
      
      -- 李四 + 60000
       update account set balance = balance + 60000  where name ='ls';
       commit;
       dbms_output.put_line('转账成功');
       
       exception
        when others  then
          rollback;
          dbms_output.put_line('转账失败');  
    end;

      事务的开始: 从执行的第一条SQL语句开始
      事务的结束: 执行commit(提交, 把数据确定写入表中),或者执行rollback(回滚, 这个事务所做的所有的sql 都撤销)
      确保多条SQL语句在同一个事务中, 数据库把这个些SQL写在同一个PL/SQL,
        java 程序那边: ****事务加载业务层****
        行锁: 给表中的某一行数据加锁, 对修改数据(update, delete)有效, 不影响查询数据
    *** commit: 没有异常,写commit(表示全部成功)
    *** 出现异常, 写rollback(全部失败), 把刚刚这个事务所有的sql语句全部撤销

    事务的四大特征:  ACID

    • 原子性(Atomicity):事务中所有操作是不可再分割的原子单位。事务中所有操作要么全部执行成功,要么全部执行失败。
    • 一致性(Consistency):事务执行后,数据库状态与其它业务规则保持一致。如转账业务,无论事务执行成功与否,参与转账的两个账号余额之和应该是不变的。
    • 隔离性(Isolation):隔离性是指在并发操作中,不同事务之间应该隔离开来,使每个并发中的事务不会相互干扰
    • 持久性(Durability):一旦事务提交成功,事务中所有的数据操作都必须被持久化到数据库中,即使提交事务后,数据库马上崩溃,在数据库重启时,也必须能保证通过某种机制恢复数据。
  • 相关阅读:
    集合 Subset Sums
    resin config 中文(resin.xml)
    resin4 简单学习
    什么是敏捷软件测试
    10个热门IT证书
    LoadRunner监控Linux服务器
    Agile 敏捷开发
    戴明PDCA方法
    【转】什么是内存泄露? 内存泄露检测工具
    LoadRunner常见问题
  • 原文地址:https://www.cnblogs.com/64Byte/p/12746518.html
Copyright © 2020-2023  润新知