视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle数据库中commit和rollback命令
2020-11-09 11:20:57 责编:小采
文档


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

下载本文
显示全文
专题