rollback和commit的用法

首先,大家要清楚 COMMIT / ROLLBACK ,都是用在执行 DML 语句之后的。

所谓 DML 语句就是 INSERT / DELETE / UPDATE / SELECT ,而 CREATE TABLE / VIEW 之类的语句,是 DDL

DML 语句,执行完之后,处理的数据,都会放在回滚段中(除了 SELECT 语句),等待用户进行提交(COMMIT)或者回滚 (ROLLBACK),当用户执行

COMMIT / ROLLBACK 后,放在回滚段中的数据就会被删除。

所有的 DML 语句都是要显式提交了,所谓“显式提交”,就是要执行 COMMIT / ROLLBACK 。


而其他的诸如 DDL 语句的,都是隐式提交的。就是说,不用进行 COMMIT / ROLLBACK 。在运行那些非

DML 语句后,ORACLE 已经进行了隐式提交,例如 CREATE TABLE,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。

可以形象的理解成


commit就是将数据库中的数据提交到回滚段中,会覆盖原先数据


rollback就是将回滚段中的数据回滚到数据库中,不会覆盖数据,不管先前有没有设置回滚点,rollback回滚的数据都不会变,除非commit覆盖了原先的数据

猜你喜欢

转载自1124117571.iteye.com/blog/2284717