MySql中的事務嵌套,MySql事務嵌套
1、Mysql中的事務必須是InnoDB、Berkeley DB引擎,myisam不支持。
2、Mysql是不支持嵌套事務的,開啟了一個事務的情況下,再開啟一個事務,會隱式的提交上一個事務。
3、Mysql默認是autocommit=1,也就是說默認是立即提交,如果想開啟事務,先設置autocommit=0,然後用START TRANSACTION、 COMMIT、 ROLLBACK來使用具體的事務。
4、 fastapp的事務嵌套,原理和代碼都很簡單,使用了一個trans_count的變量來標識當前事務的層級,默認為0,每次調用開啟事務時計數器加1,事務提交或者回滾時,計數器減1。當計數器為0時,認為是最外層事務時實際觸發mysql的事務操作。
5、 事務控制要成對出現,有開啟,必有提交和回滾,如果不匹配導致事務計時器錯誤,偏離預期的控制效果
6、事務一般配合try catch異常處理語句一起實現,try包裹的語句體內,如果有錯誤,應該主動拋出異常,在catch內進行回滾操作,而不能直接在異常處回滾