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;

  • 相关阅读:
    MySQL基础知识总结
    PHP常见算法
    PHP程序功能设计
    SVN配置使用及移植
    推荐一个SpringBoot + Vue + MyBatis 音乐网站项目
    累积sql常用查询语句「Oracle」
    Nginx服务器设置http/https正向代理,使用ngx_http_proxy_connect_module模块
    squid配置文件
    nginx命令
    k8s与Docker有啥关系
  • 原文地址:https://www.cnblogs.com/pacoson/p/3522302.html
Copyright © 2011-2022 走看看