zoukankan      html  css  js  c++  java
  • oracle中rollback语句作用范围

    DDL数据定义语言,所谓数据定义,指的是建表啊、建字段啊这种改变数据结构的操作。。。

    DML数据操纵语言,指的是对数据的操作,如增、改、查、删这种。。。

    DCL  data control language  主要用来授予或回收访问数据库的某种特权,控制数据库操作事务发生的时间及效果,对数据库进行监视等;
    一,GRANT  语句; 赋予用户权限
    常用数据对象权限
    (1)  ALL ON  数据对象名
    (2)  SELECT ON   数据对象名
    (3)  UPDATE ON   数据对象名
    (4)  DELETE ON   数据对象名
    (5)  INSERT ON   数据对象名
    (6)  ALTER  ON   数据对象名
    GRANT  CONNECT TO USER1;
    GRANT  SELECT ON TABLE2  TO USER2;
    GRANT   SELECT, INSERT , DELETE  ON TABLE3  TO USER1, USER2;
    二,REVOKE语句:回收权限语句
    REVOKE CONNECT FROM USER1;
    REVOKE SELECT ON TABLE2 FROM USER2;
    REVOKE SELECT , INSERT , DELETE  ON  TABLE3  FROM  USER1, USER2;
    三,COMMIT语句:提交事务,在进行插入,删除, 修改操作时必须提交
    提交的三种方式;
    (1),显式提交,用COMMIT直接完成提交为显式提交
    (2)隐式提交,用SQL语句间接完成的提交为隐式提交,这些命令有:ALTER , CONNECT, CREATE, DISCONNECT, DROP, EXIT, GRANT, QUIT, REVOKE
    (3)自动提交 把AUTOCOMMIT 设为ON 系统自动提交:  SET AUTOCOMMIT ON;
    (4)正常提交如exit等commit,非正常提交如突然断电rollback
    四,ROLLBACK:回滚语句使数据库状态回到上次最后提交事务的状态
    ROLLBACK [WORK]  TO  [SAVEPOINT]//回退到某一点

    一个事务起始于DML语句,终止于DDL、DCL或commit语句
    在做过DDL语言之后默认提交session,会自动执行了commit命令,做过create之后再rollback无效
    问:
    对一个表进行Update操作之后
    紧接着create一个表。
    这时候再写rollback,update会回滚到update之前的数据么
    答:
    create 表是DDL操作,DDL操作会自动提交,就是说它实际上会自动执行了commit命令
    再做rollback已经没有用了

  • 相关阅读:
    Java方法命名之“由简入繁”原则
    设置Tomcat的字符编码
    MyBatis之会话Session原理
    SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1fa5519] was not registered for synchronization because synchronization is not active
    python3 驱动 PyMySQL
    win 7 64 安装 MondgoDB 3.4
    Python
    win 7 64 安装 tensorflow
    俞敏洪:2017年上半年我的阅读书单和笔记 转
    阿里巴巴开源产品列表 转
  • 原文地址:https://www.cnblogs.com/hd92/p/13553347.html
Copyright © 2011-2022 走看看