事務的傳播性和隔離級別


事務的傳播性:
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 的默認隔離級別是:讀已提交


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM