首先,大家要清楚 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覆盖了原先的数据
本文详细解释了COMMIT和ROLLBACK在数据库操作中的使用场景,包括它们的区别、工作原理以及如何在DML语句后进行提交或回滚。通过实例解析,帮助读者更好地理解和应用这些关键概念。
1445

被折叠的 条评论
为什么被折叠?



