zoukankan      html  css  js  c++  java
  • oracle-SQL语言基础-事务控制命令命令

    事务控制命令命令

    COMMIT
    ROLLBACK
    SAVEPOINT
    SET TRANSACTION

    当第一条可执行的SQL语句开始执行,数据库事务就开始。
    随着下面任一事件发生,数据库事务结束:
    执行COMMIT或 ROLLBACK
    执行DDL或DCL命令(自动提交)
    用户退出
    系统崩溃 System crashes

    在执行COMMIT或ROLLBACK命令之前的数据状态(使用DML操纵数据):
    数据够被恢复到改变前状态。
    当前用户能够查询到使用DML操作的结果。
    其它用户不能查询到当前用户使用DML操作的结果。
    其它用户不能改变由当前用户锁定的行。
    在执行COMMIT命令之后的数据状态(使用DML操纵数据):
    改变的数据被永久保存到数据库中。
    数据以前的状态永久丢失。
    所有用户能查询到使用DML操作的结果。
    锁定的行被释放
    所有的保存点被释放。



    SQL> UPDATE    emp
      2  SET     deptno = 10
      3  WHERE    empno = 7782;
    1 row updated.

    SQL> COMMIT;
    Commit complete.


    在执行ROLLBACK命令之后的数据状态(使用DML操纵数据):

    数据的改变被撤销。
    数据恢复到以前的状态。
    锁定的行被释放。

    SQL> DELETE FROM employee;
    14 rows deleted.
    SQL> ROLLBACK;
    Rollback complete.


    在当前事务内使用SAVEPOINT语句创建一标识
    使用ROLLBACK TO SAVEPOINT语句回退到标识处
    SQL> UPDATE...
    SQL> SAVEPOINT update_done;
    Savepoint created.
    SQL> INSERT...
    SQL> ROLLBACK TO update_done;
    Rollback complete.


     

    SET TRANSACTION语句:强制当前事务为整个事务内的所有SQL命令使用指定的回滚段。
    SET TRANSACTION USE ROLLBACK  SEGMENT rollback_segment_name;

  • 相关阅读:
    BZOJ 1452 Count(二维树状数组)
    BZOJ 1407 Savage(拓展欧几里得)
    BZOJ 1415 聪聪和可可(期望DP)
    BZOJ 1406 密码箱(数论)
    最大流小结
    UVA6531Go up the ultras
    二分图小结
    Codeforces Round #243 (Div. 1)
    图论模板集合
    zoj3416 Balanced Number
  • 原文地址:https://www.cnblogs.com/pacoson/p/3522302.html
Copyright © 2011-2022 走看看