zoukankan      html  css  js  c++  java
  • 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):一旦事务提交成功,事务中所有的数据操作都必须被持久化到数据库中,即使提交事务后,数据库马上崩溃,在数据库重启时,也必须能保证通过某种机制恢复数据。
  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/64Byte/p/12746518.html
Copyright © 2011-2022 走看看