PLSQL中 commit 和 rollback 的区别

 

一. commit(提交)

作用:commit即提交,表示这个事务的所有操作都执行成功,commit告诉系统,数据库要进入一个新的正确状态,该事务对数据库的所有更新都要确保不因数据库的宕机而丢失。

提交数据有三种类型:显式提交、隐式提交及自动提交(一般不需要),所以这里就列举了前两个,如下:

  (1) 显式提交

需要点击commit命令完成的提交为显式提交。这些常用的命令有:

           insert,delete,update

  (2) 隐式提交

用SQL命令间接完成的提交为隐式提交(不需点击,自动提交)。这些常用的命令有:

create,drop,alter,grant,revoke,truncate, quit

 

二. rollback(回滚)

作用:ROLLBACK即回退或回滚,表示事务中有执行失败的操作,这些操作必须被撤销,ROLLBACK告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的部分或所有更新必须被撤销。

 

三. 注意点

当执行完DML语句后,处理的一些数据都会放在回滚段中,就等待用户执行commit和rollback,当执行完commit和rollback后,回滚段中的数据就会被删除。

DDL是隐性提交的,不能回滚。而最常用的DML语言(update,delete,insert)是需要进行显示提交的,也就是说需要手动地去commit。

————————————————