TCL_事務控制語言


TCL

    transaction  事務   --  DML
           定義為把一連串的操作作為單個邏輯工作單元處理
               -----     例如:銀行轉賬

事務特性   ACID
    原子性     atomicity           所有的數據修改  要么一起執行  要么不執行
    一致性     congsistency     所有的數據修改同時得到反應
    隔離性     isolation             另一個事務需要在此事務結束之后才能執行
    持久性     durability           數據變動是永久的
  
使用事務的優點:
   他們保證了數據的一致性
   使用事務使得數據修改更為靈活而且修改過程是可控的
   即使在用戶處理失敗或者系統發生故障時數據仍然是安全的
   事務保證DML(數據操縱語言)語句對於數據的所作的變動是一致的

隱式事務   DDL
顯式事務   DCL   - commit

commit  語句完成顯式事務,並且使得所有的修改是永久有效的
rollback   語句終止當前事務,使得數據庫返回到以前的狀態

實例:
   
   
   
           
  1. select * from student;
  2. update student set sex = '人' where stuNo = '00011';
  3. commit;
  4. rollback; -- 回滾至上一commit之后
  5. show autocommit; -- 默認off
  6. set autoCommit on;
  7. set autoCommit off;
  8. create table AA(
  9. AA char(10)
  10. ); -- 隱式commit
  11. select * from bankcount;
  12. -- 多條語句 事務
  13. update bankcount set money = money - 10000 where countno = '110 000 2000 888';
  14. update bankcount set money = money + 10000 where countno = '110 000 2000 889';
  15. rollback;
  16. commit;
  17. -- rollback 定義保存點 savePoint;
  18. SAVEPOINT aa;
  19. update bankcount set money = money + 10000 where countno = '110 000 2000 888';
  20. SAVEPOINT bb;
  21. update bankcount set money = money - 10000 where countno = '110 000 2000 889';
  22. rollback to bb; -- 回滾之保存點之后
  23. commit;

在下列情況下,數據修改自動被回滾: 
    1. 系統崩潰或發生故障. 
    2. SQL*Plus 意外終止. 

隔離性: 
  上鎖防止多個用戶同時修改數據.
  上鎖可以是隱式或顯式的. 

  上鎖的一些基本內容:
             上鎖可預防並發事務之間的破壞性的交互.
             上鎖是自動施行的,無須用戶干預.
             上鎖把操作限制到可能的最小粒度. 
             只有在事務結束后,上鎖才被解除.
             DML行數據排它鎖
             事務排它鎖







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM