Welcome 微信登录

首页 / 数据库 / MySQL / Oracle数据库中commit和rollback命令

在这里我只简单介绍一下这两个命令,只是我在使用的过程中用到了,所以就在这里提一提,如果大家对这个感兴趣的话,可以去搜索一些更多的介绍,欢迎分享出来~~一个数据库事务起始于一个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相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle数据库中truncate命令和delete命令的区别Ubuntu下源码安装MySQL-5.5.25a相关资讯      Oracle命令 
  • Oracle模拟MySQL的show index from  (06/28/2014 13:41:35)
  • Oracle中tnsping命令解析  (10/04/2013 10:10:52)
  • Oracle中的文件的执行命令  (02/14/2013 16:31:42)
  • Oracle工具之nid命令的使用  (01/23/2014 15:22:08)
  • Oracle使用命令移动各类文件的方法  (05/25/2013 17:13:22)
  • Oracle中imp命令详解  (10/14/2012 19:28:34)
本文评论 查看全部评论 (0)
表情: 姓名: 字数