程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 數據庫事務

數據庫事務

編輯:Oracle教程

數據庫事務


數據庫事務的概念
兩次連續成功的COMMIT或ROLLBACK之間的操作,稱為一個事務。在一個事務內,數據的修改一起提交或撤銷,如果發生故障或系統錯誤,整個事務也會自動撤銷。
比如,我們去銀行轉賬,操作可以分為下面兩個環節:
(1) 從第一個賬戶劃出款項。

(2) 將款項存入第二個賬戶。

在這個過程中,兩個環節是關聯的。第一個賬戶劃出款項必須保證正確的存入第二個賬戶,如果第二個環節沒有完成,整個的過程都應該取消,否則就會發生丟失款項的問題。
整個交易過程,可以看作是一個事物,成功則全部成功,失敗則需要全部撤消,這樣可以避免當操作的中間環節出現問題時,產生數據不一致的問題。

數據庫事務的應用
數據庫事務處理可分為隱式和顯式兩種。顯式事務操作通過命令實現,隱式事務由系統自動完成提交或撤銷(回退)工作,無需用戶的干預。
隱式提交的情況包括:當用戶正常退出SQL*Plus或執行CREATE、DROP、GRANT、REVOKE等命令時會發生事務的自動提交。

系統的環境變量AUTOCOMMIT設置為ON(默認狀態為OFF)
SET AUTOCOMMIT ON/OFF
隱式回退的情況包括:當異常結束SQL*Plus或系統故障發生時,會發生事務的自動回退。


如何開始一個新的事務呢?
一般情況下,開始一個會話(即連接數據庫),執行第一條SQL語句將開始一個新的事務,或執行COMMIT提交或ROLLBACK撤銷事務,也標志新的事務的開始。另外,執行DDL(如CREATE)或DCL命令也將自動提交前一個事務而開始一個新的事務。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved