今天溫習oracle事務,記錄如下:
事務定義
事務是保持資料的一致性,它由相關的ddl或者dml語句做為載體,這組語句執行的結果要麼一起成功,要麼一起失敗。
我們知道sql92標準定義了資料庫事務的四個特點:
2.事務控制命令
3.鎖的概念
鎖是為了保證多個併發的事務在引用同乙個資源時,對資源的保護,同時也防止事物間的相互破壞。
4.oracle中鎖型別
不允許其它使用者對該錶插入,刪除,修改操作,只能查詢,同時其它使用者不能修改和鎖定表
死鎖 : 所個事務對資源的相互等待,造成死鎖。
5.事務隔離級別
事務隔離級別定義了事務之間的隔離程度。sql92標準中定義了4中隔離級別。
通過一些現象,可以反映出設定事務隔離級別產生的效果:
事務t1讀取一條指定where條件的語句,返回結果集。此時事務t2插入一行新記錄,恰好滿足t1的where條件。然後t1使用相同的條件再次查詢,結果集中可以看到t2插入的記錄,這條新紀錄就是幻想。
髒讀: 事務t1修改了一條資料,但是還未提交,事務t2恰好讀取到了這條修改後了的資料,此時t1將事務回滾,這個時候t2讀取到的資料就是髒資料,稱為髒讀。
不可重複讀取
:事務t1讀取一行記錄,緊接著事務t2修改了t1剛剛讀取的記錄,然後t1再次查詢,發現與第一次讀取的記錄不同,這稱為不可重複讀。
6.oracle的事務隔離級別
oracle
提供了sql92標準中的read committed和serializable,同時提供了非sql92標準的read-only。
serializable
設定隔離級別
設定單個會話的隔離級別
7.具體例子
演示2個事務,t1更新表a的資料,t2刪除表2的資料下面將t1提交,t2得到執行
t1提交後的情況
演示事務的隔離級別
mysql事務隔離級別詳解 事務的隔離級別詳解
事務的隔離級別 在資料庫操作中,為了有效保證併發讀取資料的正確性,提出的事務隔離級別。問題的提出 資料庫是要被廣大客戶所共享訪問的,那麼在資料庫操作過程中很可能出現以下幾種不確定情況。更新丟失 兩個事務都同時更新一行資料,乙個事務對資料的更新把另乙個事務對資料的更新覆蓋了。這是因為系統沒有執行任何的...
理解事務的隔離性
理解事務的隔離性 事務是以可控的方式對資料資源進行訪問的一組操作。其屬性包括原子性 一致性 隔離性和永續性,也就是常說的acid。其中,隔離性是針對資料資源的併發訪問,規定了各個事務之間相互影響的程度。個人認為這是事務的4個特性裡面,比較難理解的乙個。事實上,事務的隔離性可以分為4種型別的隔離級別 ...
npm mysql 事務 mysql事務隔離級別
準備命令 檢視隔離級別 select global.tx isolation,tx isolation 修改當前會話隔離級別 set session tx isolation read uncommitted set session tx isolation read committed set s...