sqlplus中的提交方式

pingley發表於2012-05-19
sqlplus中的提交方式
在我看來sqlplus 中的commit 方式可以分為三種,下面一一講解。
1、使用者控制事務的開始和提交.這也是我們最常用的方式,預設的方式。
SQL> commit;--顯式的發出commit,開始事務。
Commit complete.
SQL> insert into t values (1);
1 row created.
SQL> commit;--顯式的發出commit,提交事務。
Commit complete.
2、透過autocommit 引數設定事務的自動提交方式。
SQL> show autocommit
autocommit OFF--預設是off,所以在使用者執行DML語句的時候,sqlplus不會自動幫我們提交。
SQL> insert into t values (2);
1 row created.
SQL> set autocommit on--開啟sqlplus 中的自動提交功能。
SQL> insert into t values (3);
1 row created.
Commit complete.--sqlplus 自動幫我們提交了DML語句。
SQL> select * from t;
         X
----------
         1
         2
         3
SQL> rollback;
Rollback complete.
SQL> select * from t;--在設定了自動提交功能以後,再執行DML語句,前面沒有提交的
DML語句也會自動提交。在這裡是insert into t values (2);這條語句。
         X
----------
         1
         2
         3
注:不建議在sqlplus 中使用autocommit 功能,這樣會削弱使用者對事務提交的控制權。
3、退出sqlplus 的時候提交或者回滾事務。
如果使用exit 或者quit 命令友好的提出sqlplus 未提交的事務將會被自動的提交。
如果異常的退出sqlplus 未提交的事務將會被回滾掉,比如直接叉掉sqlplus。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-730263/,如需轉載,請註明出處,否則將追究法律責任。

相關文章