1. 程式人生 > >事務的傳播性和隔離級別

事務的傳播性和隔離級別

server 查詢 默認 進行 rop 讀取 ted and 一個數

事務的傳播性:
1、PROPOGATION_REQUIRES --需要在一個事務中執行
2、PROPOGATION_SUPPOTS --不需要在一個事務中執行,如果有事務,也可以執行
3 PROPOGATION_NOT_SUPPORTED --不支持在一個事務中執行,如果在一個正在運行的事務中執行,則會被掛起

5 PROPOGATION_NEVER --必須不在一個正在運行的事務中執行,則會拋出異常
6 PROPOGATION_MANDATORY --必須在一個正在運行的事務中執行,否則拋出異常

7 PROPOGATION_NEW --如果有一個事務正在執行,則掛起該事務,重開一個事務

4 PROPOGATION_NESTED --如果有一個事務a正在進行中,該事務被嵌套在a中

事務的隔離級別:

1、ISOLATION_DEFAULT 默認,3 ,也就是可重復讀

2、ISOLATION_READ_UNCOMMITED ,讀未提交,會引起不可重復讀、臟讀、幻讀

3、ISOLATION_READ_COMMITED,讀已提交,避免臟讀,但仍然會有不可重復讀、幻讀

4、ISOLATION_READ_REPEATED,可重復讀,避免臟讀、不可重復讀,仍然有幻讀

5、ISOLATION_SEARILIZE ,序列化

臟讀:讀取了未提交的數據a,然後a在事務中回滾了

不可重復讀:讀取一個數據,前後不一致,這個是因為其他事務修改了該數據

幻讀:用一條sql,查詢數據,第二次查詢到的數據的數量和第一次查詢到的數量不同

mysql 的默認的隔離級別是:可重復讀

oracle、sqlserver 的默認隔離級別是:讀已提交

事務的傳播性和隔離級別