在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。
(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:
SQL>COMMIT;
(2) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
系统将自动进行提交,这就是自动提交。其语法为:
SQL>SET AUTOCOMMIT ON;
(3) 隐式提交
隐式提交的定义:
又名自动提交,即无需显示执行commit语句,session中的操作被自动提交到数据库的过程。
隐式提交的方式:
1、正常执行完DDL语句。包括create,alter,drop,truncate,rename。
2、正常执行完DCL语句。包括grant,revoke。
3、正常退出数据库管理软件,没有明确发出commit或者rollback。
隐式提交的注意事项:
1、执行DDL语句时,前面的DML操作也会被提交到数据库中,因为是在一个session里,那执行ddl语句的
时候前面的dml语句肯定也会“不可幸免”的被提交到库中。
2、即使DDL语句执行失败,前面的DML操作也会被提交到数据库中这就有点儿让人奇怪了,DDL都执行失