当前位置:  数据库>oracle

Oracle数据库中commit和rollback命令

    来源: 互联网  发布时间:2017-05-03

    本文导语: 在这里我只简单介绍一下这两个命令,只是我在使用的过程中用到了,所以就在这里提一提,如果大家对这个感兴趣的话,可以去搜索一些更多的介绍,欢迎分享出来~~ 一个数据库事务起始于一个SQL语句,中止于以下4种事件之...

在这里我只简单介绍一下这两个命令,只是我在使用的过程中用到了,所以就在这里提一提,如果大家对这个感兴趣的话,可以去搜索一些更多的介绍,欢迎分享出来~~

一个数据库事务起始于一个SQL语句,中止于以下4种事件之一:
COMMIT或ROLLBACK语句
DDL/DCL隐式提交
用户退出时自动提交
系统强行关闭时取消事务
事务结束后,下一条SQL语句将开始一个新的事务。




语句 功能
COMMIT 结束当前事务,并将所有数据变更提交数据库生效
SAVEPOINT  name 在当前事务内部创建一个保存点
ROLLBACK  [TO  SAVEPOINT  name] ROLLBACK指令结束当前事务,并取消所有数据变更。ROLLBACK  TO  SAVEPOINT  name放弃该保存点,并取消所有在保存点之后的数据变更

隐式事务提交:
一个事务在下列情况下会被自动提交
DDL语句
DCL语句
用户正常退出数据库,而缺少显式的COMMIT或者ROLLBACK。
一个事务在下列情况下会被自动回退
用户异常退出数据库
系统强行关闭
数据在COMMIT/ROLLBACK前的状态:
事务中所有数据变更都会被临时存放在数据库的缓冲池中,直到事务被提交或者回退。因而事务中早先的状态是可以被恢复的。
用户可以通过SELECT语句查询自己发起事务的数据变更,即使事务未被提交。但不能看到他人发起事务中未被提交的数据。
用户发起事务中的变更数据将被数据库系统锁定。除该用户外,其他用户不能对锁定的数据进行变更操作,直到锁定的数据被提交或回退。
数据在COMMIT后的状态:
数据变更在数据库中正式生效
数据不可被还原
所有用户可以看到变更数据
数据锁将被释放,一度被锁定的数据重新可以被所有用户修改
所有的保存点(savepoint)都被清除
数据在ROLLBACK后的状态:
所有数据变更都取消,数据状态恢复到事务开始前
数据锁将被释放,一度被锁定的数据重新可以被所有用户修改
回退到一个保存点:
使用SAVEPOINT语句创建一个保存点。如果保存点名称已经存在,则新的保存点将覆盖旧的保存点。
使用ROLLBACK  TO  SAVEPOINT语句回退到已有保存点状态






















总结一下:
1.没有提交(commit)的数据删除后无法rollback
2.提交(commit)了的数据删除后可以使用rollback恢复
3.删除数据后提交(commit)则无法使用rollback恢复


以上只是在用到的过程中,就随便搜了一点分享给大家,以后有更多资料了,再接着共享, 对了,还有一点,就是使用delete命令后没有commit,在程序里实现插入或者其他操作的时候会一直处在正在执行的状态,但是commit后就不会出现了~

更多Oracle相关信息见 专题页面


    
 
 

您可能感兴趣的文章:

  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • Oracle 10G for Linux常用命令
  • Linux 下 Oracle 命令学习笔记
  • linux as3 安装oracle10g ,web端能访问,终端用命令不能进入
  • 请问,在unix下,关闭oracle数据库和重起unix,的正确顺序和命令应该是怎样的!请教!
  • Linux下命令行启动oracle时报错的解决
  • Linux下启动Oracle database EM及isqlplus等命令
  • oracle for linux 下面的sqlca.sqlcode是一个什么命令去查?
  • 查看Oracle的执行计划一句话命令
  • Oracle中备份表的简单sql命令语句
  • Oracle 10g各个帐号的访问权限、登录路径、监控状态命令查询等等
  • 要装oracle,设置好环境变量。之后就啥命令也用不了了
  • Oracle如何直接运行OS命令(上)第1/2页
  • UNIX服务器上使用“kill"命令终止"Oracle”过程
  • oracle命令行删除与创建用户的代码
  • 剖析用UNIX的kill命令终止Oracle详细过程
  • 用UNIX的kill命令来终止所有的Oracle过程
  • 学习登录oracle数据库时常用的操作命令
  • ubuntu如何用apt-get命令安装Oracle的vituralBox呢?
  • oracle创建删除用户示例分享(oracle删除用户命令及授权)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,