• 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;

  • 相关阅读:
    sql 变量赋值
    mysql 行号 获取指定行数据
    SQL Server获取指定行的数据
    sql server 创建内联表值函数
    sql server 表变量存储临时查询数据
    sql server 循环操作
    oracle for in 学习
    oracle C# 访问
    sql server insert values 多值 与oracle 的不同
    mysql 如何选择随机行
  • 原文地址:https://www.cnblogs.com/pacoson/p/3522302.html
Copyright © 2020-2023  润新知