事务的传播性和隔离级别
事務的傳播性:
1、PROPOGATION_REQUIRES? ? ? ? ? ? --需要在一個事務中執(zhí)行
2、PROPOGATION_SUPPOTS? ? ? ? ? ? ?--不需要在一個事務中執(zhí)行,如果有事務,也可以執(zhí)行
3? ?PROPOGATION_NOT_SUPPORTED --不支持在一個事務中執(zhí)行,如果在一個正在運行的事務中執(zhí)行,則會被掛起
5? ?PROPOGATION_NEVER? ? ? ? ? ? ? ? ? --必須不在一個正在運行的事務中執(zhí)行,則會拋出異常
6? ?PROPOGATION_MANDATORY? ? ? ? --必須在一個正在運行的事務中執(zhí)行,否則拋出異常
7? ?PROPOGATION_NEW? ? ? ? ? ? ? ? ? ? ? --如果有一個事務正在執(zhí)行,則掛起該事務,重開一個事務
4? ?PROPOGATION_NESTED? ? ? ? ? ? ? ? --如果有一個事務a正在進行中,該事務被嵌套在a中
?
事務的隔離級別:
1、ISOLATION_DEFAULT? 默認,3 ,也就是可重復讀
2、ISOLATION_READ_UNCOMMITED? ,讀未提交,會引起不可重復讀、臟讀、幻讀
3、ISOLATION_READ_COMMITED,讀已提交,避免臟讀,但仍然會有不可重復讀、幻讀
4、ISOLATION_READ_REPEATED,可重復讀,避免臟讀、不可重復讀,仍然有幻讀
5、ISOLATION_SEARILIZE ,序列化
臟讀:讀取了未提交的數(shù)據(jù)a,然后a在事務中回滾了
不可重復讀:讀取一個數(shù)據(jù),前后不一致,這個是因為其他事務修改了該數(shù)據(jù)
幻讀:用一條sql,查詢數(shù)據(jù),第二次查詢到的數(shù)據(jù)的數(shù)量和第一次查詢到的數(shù)量不同
?
mysql 的默認的隔離級別是:可重復讀
oracle、sqlserver 的默認隔離級別是:讀已提交
轉載于:https://www.cnblogs.com/drafire/p/10661395.html
總結
以上是生活随笔為你收集整理的事务的传播性和隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非合作博弈篇——纳什均衡(Nash Eq
- 下一篇: Tomcat、Servlet、Servl