寫完DML語句(update, insert, delete)後,需要手動COMMIT,如果沒有COMMIT,更新的內容會被保存到內存中,而不是提交到數據庫中,將不會被其他Session(對話)看見。其他對話看到的是更新前的數據。當用戶退出對話時,Oracle才會自動Commit。
而DDL語句(create, alter, drop, truncate),自帶COMMIT,所以不需要寫COMMIT。因此,DDL操作不能被回滾。
執行完DML語句,如果再執行DDL語句,也會自動COMMIT未被COMMIT的數據。還有其他的SQL命令也有同樣的效果:audit, noaudio, comment, grant, revoke, connect, disconnect, exit,quit.
如果打開自動提交,DML操作後也不需要手動提交。 SET AUTOCOMMIT ON