oracle事务命令,Oracle数据库中commit和rollback命令

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 专题页面 ?tid=12

logo.gif 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值