熟悉mysql的應該都知道mysql innodb的事務及其他的四大特性,永續性,隔離性,原子性,一致性。
原子性—在執行一組有特定邏輯的sql指令時,要麼全部執行成功,要麼全部不執行。只要其中乙個指令執行失敗,所有的指令都執行失敗,資料進行回滾,回到執行指令前的資料狀態。
事務的原子性在很多場景都需要用到,如進行一組多對多關係的資料表時,而在tp5中也僅需幾行**就可以解決。
db:
:starttrans()
;//開啟事務
db::
commit()
;//提交事務,一般用於在邏輯完成無誤後。
db::
rollback()
;//回滾事務,在邏輯發生異常後進行回滾資料
tp5 事務處理
tp5 事務處理我理解的就是當兩個資料庫,或者連續操作關係很密切,你操作a會影響操作b時就需要手動事物處理。如果操作a成功操作b發生錯誤,如果不進行事物處理的話,雖然操作b會報錯,但是操作a是成功的,使用事物處理就會返回到操作前,舉個例子 我有100元,現在需求是要轉賬給你50,那麼簡單來說就需要兩...
TP5事務操作簡明例項
如果乙個操作會改變資料庫多處資訊,並且這些資訊是密切相關的,為了確保每一處改動都是成功的,如果其中一處改動不成功,就將其它改動撤銷,以保證資料 事務 的完整性。比如 你給我轉賬10000塊,需要把你的餘額減10000,我的加10000,如果萬一我的餘額寫入失敗,那麼理應你的餘額不變,不然這10000...
事務回滾與手動回滾
一般我們在開發時,在方法或者類上加了 transactional事務註解,然後會用 try catch 將可能會出問題的 塊包起來,在catch裡面處理捕獲的異常,但是,如果在catch裡面沒有把異常丟擲去,此時事務是不會自動回滾的 比如這種情況 這裡既沒有丟擲異常,也沒有手動回滾,在插入流水表之後...