• 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行数据排它锁
                 事务排它锁






  • 相关阅读:
    Windows phone 7 OpenSource Project
    编程之美阅读笔记
    Java多线程中读写不一致问题
    pytorch性能瓶颈检查
    贪心会议安排
    网络编程之libevent
    笔记:自动求导【动手学深度学习v2】
    测试
    AnimeGAN+Flask部署过程
    手写哈希表
  • 原文地址:https://www.cnblogs.com/jarl/p/5892887.html
Copyright © 2020-2023  润新知