(2) 將款項存入第二個賬戶。
在這個過程中,兩個環節是關聯的。第一個賬戶劃出款項必須保證正確的存入第二個賬戶,如果第二個環節沒有完成,整個的過程都應該取消,否則就會發生丟失款項的問題。
整個交易過程,可以看作是一個事物,成功則全部成功,失敗則需要全部撤消,這樣可以避免當操作的中間環節出現問題時,產生數據不一致的問題。
數據庫事務的應用
數據庫事務處理可分為隱式和顯式兩種。顯式事務操作通過命令實現,隱式事務由系統自動完成提交或撤銷(回退)工作,無需用戶的干預。
隱式提交的情況包括:當用戶正常退出SQL*Plus或執行CREATE、DROP、GRANT、REVOKE等命令時會發生事務的自動提交。
系統的環境變量AUTOCOMMIT設置為ON(默認狀態為OFF)
SET AUTOCOMMIT ON/OFF
隱式回退的情況包括:當異常結束SQL*Plus或系統故障發生時,會發生事務的自動回退。
如何開始一個新的事務呢?
一般情況下,開始一個會話(即連接數據庫),執行第一條SQL語句將開始一個新的事務,或執行COMMIT提交或ROLLBACK撤銷事務,也標志新的事務的開始。另外,執行DDL(如CREATE)或DCL命令也將自動提交前一個事務而開始一個新的事務。