Commit, rollback 是显式的提交和回滚语句,还有一些隐式的提交和回滚是大家需要知道并引起注意的:
当如下事件发生是,会隐式的执行Commit动作:
1 、数据定义语句被执行的时候,比如新建一张表:Create Table …
2 、数据控制语句被执行的时候,比如赋权GRANT …( 或者DENY)
3 、正常退出i SQL*Plus 或者PLSQL DEVELOPER, 而没有显式的执行COMMIT 或者ROLLBACK 语句。
当如下事件发生时,会隐式执行Rollback 动作:
1 、非正常退出i SQL*Plus , PLSQL DEVELOPER, 或者发生系统错误。
课后实验:
1 )使用Plsql Developer作为开发工具,在数据库中创建一张表Testtab1 , 往里面插入一条记录,不要commit,
然后正常退出PLSQL,再次登陆看看是否已经执行commit动作。
2 )使用Plsql Developer作为开发工具,在数据库中创建一张表Testtab1 , 往里面插入一条记录,不要commit,
然后在任务管理器中将PLSQL进程杀死,再次登陆看看是否已经执行commit动作。
实验解析:
通过测试表明:
通过正常关闭PLSQL(即不执行commit动作,关闭PLSQL窗口),那么会隐式的执行commit动作;通过非正常关闭(即第二种方式),那么会隐式的执行roolback动作。