oracle中的commit和rollback

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中的commit和rollback相关的知识,希望对你有一定的参考价值。

commit
就是确定提交的意思,比如你用test账户登录数据库insert到表中一条记录,而不commit,那么别的账户在登录这个数据库时就查询不到你insert
的记录;而commit后则其他账户就能查询到你insert的记录了。
rollback就是回滚的意思,比如你用test账户登录数据库delete表中一条记录,这时你查询这个表时,则delete的记录不存在;再rollback后,你再查询你delete的记录时,发现被删除的记录又回来了。
参考技术A 1、首先commit和rollback是在进行insert、update、delete语句完成后需要做的操作(即对表中
的记录进行修改),而select则不需要。
为了防止你的操作有误,执行完以上三种语句后,数据库没有直接把结果保存,如果确认无误
则可以commit(提交),如果有误(或反悔)可以rollback(回滚)
2、在pl/sql developement 工具中如果你有insert、update、delete操作,会在工具栏上有提交、回滚的图标,亮色显示,如图
参考技术B commit对你刚做的DML操作进行提交
ROLLBACK对你刚做的DML操作进行回滚(也就是刚才做错了撤销回去)用到UNDO段

oracle数据库有没有top这个关键字的。今天用top这个关键字的时候,它提示我的sql语句有语法错误

Oracle数据库里面有DCL语句(Data Control Language),一共有四个关键字,commit、rollback、grant和revoke。它们执行的时候,你都不会有什么感觉。commit在数据库编程的时候很常用,当你执行DML操作时,数据库并不会立刻修改表中数据,这时你需要commit,数据库中的数据就立刻修改了,如果在没有commit之前,就算你把整个表中数据都删了,如果rollback的话,数据依然能够还原。听我这么说,你或许感觉commit没什么用,其实不然。当你同时执行两条或两条以上的sql语句时,问题就出现了。举一个例子,你去银行转账,你转的时候银行的数据库会update你银行账户里面的数据,同时对另一个人得账户也进行update操作。这两个程序都必须全部正确执行,才能commit,否则rollback。如果只是完成一条,要么你郁闷,要么银行郁闷,第一种情况是,你的账户的钱没少,转账人得账户上的钱多了,银行郁闷了。第二种情况你的银行账户的钱少了,他的却没多,你就好郁闷了。Oracle好好学吧!sql不难,plsql努努力也能熬过去,等到优化那,哎!DBA不是那么好当的。还有就是commit算是显式提交,还有隐式提交,并不是,不commit的话,你的全部努力就都白费了。蓝屏 参考技术A oracle 中没有top 关键字 想做分页 只能用 rownum

select * from table_name b where rownum <= 3

mysql 中用的limit

select * from table_name b limit 0,3本回答被提问者采纳
参考技术B oracle 中没有top 关键字

select * from table_name b where rownum <= 3

mysql 中用的limit

select * from table_name b limit 0,3
参考技术C oracle 用 rownum吧

以上是关于oracle中的commit和rollback的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 数据库中的 READ_COMMITTED 和 SERIALIZABLE 隔离级别有啥区别?

转: Oracle Form 中commit 与do_key('commit_form')区别

oracle 锁表、解锁的语句

Oracle何时commit???

oracle中,已commit的数据能rollback回滚吗?

请问oracle commit以后还能再回滚吗,rollback必须写在commit之前吗