-
很多人不知道對事務不是很瞭解,以下是我爲大家提供的,希望能夠幫到大家
--[事務]
/*
定義:
事務(TRANSACTION)是作爲單個邏輯工作單元執行的一系列操作
創建事務語法:
開始事務:begin transaction 或者 begin tran
提交事務:commit transaction 或者 commit tran
回滾(撤銷)事務:rollback transaction 或者 rollback tran
事務結束標誌:
事務提交或回滾
特性:
1)原子性(Atomicity):
事務是一個完整的操作,事務的各元素是不可分割,要麼全部成功的執行,
要麼全部撤消操作,事務的單元不可能出現只有部分成功的現象
2)一致性(Consistency):
事務完成前後,數據必須保持完全一致的狀態
3)隔離性(Isolation):
事務是相對獨立的,一個事務對數據進行修改時,其他事務是不能修改的
4)持久性(Durability):
事務分類:
顯式事務:明確地 事務開始和結束
隱式事務:不須要指定開始但是要指定結束,並且在提交或回滾事務後自動啓動新的事務,
通過set implicit_transactions on將隱式事務設置爲打開
自動提交:SQL的默認模式
事務隔離級別:
未提交讀(READ UNCOMMITTED):--最底的隔離級別
俗稱“髒讀”。
特點:沒有什麼隔離且能讀取其他事務正在修改尚未提交的數據,即無法確保讀取數據的正確性
已提交讀(READ COMMITTED):--默認的隔離級別
特點:能夠確保其他事務不能夠讀取當前修改、尚未提交的記錄
重複讀(REPEATABLE READ):--隔離級別比較高
特點:確保其他事務不能修改當前事務正在讀取、尚未提交的數據
可串行化(SERIALIZABLE):--最高的隔離級別
特點:事務之間完全隔離,按串行化的方式執行的,所以該隔離級別不存在並行化的操作
注意:
1)顯示事務最常用,因爲自動提交事務無法將多條語句作爲一個獨立的邏輯單元來執行
而隱式事務無法明確控制事務的開始位置
2)事務的四個特性(屬性)是用戶強制定義的並不是系統定義的
3)要對事務的每一個操作都進行錯誤監控(即:定義變量才積累錯誤號碼)
*/