簡體   English   中英

Laravel雄辯的ORM交易:為什么我們需要回滾?

[英]Laravel Eloquent ORM Transactions: Why we need ROLLBACK?

當我們無需使用它即可執行多個查詢時為何需要DB::rollback() 如:

DB::beginTransaction();
 //database queries here

 //even if any errors pop up here, it won't reach DB::commit() and code won't get committed
DB::commit();

在上述情況下, 即使任何語句失敗,commit也永遠不會命中 ,事務也不會處理。 因此,不需要回滾還是強制回滾?

通常,不使用回滾,以便在發生某些錯誤時停止當前流,而是使用回滾,以便可以撤銷對事務或數據庫所做的任何更改,直到錯誤點為止。

因此,這不是強制性的,但僅建議保留相關數據是非常可取的。

ROLLBACK
就我而言,我在使用付款流程時會使用回滾,例如在用戶必須使用貝寶(Paypal)帳戶支付注冊費后必須創建具有完整信息的用戶,如果無法支付用戶信息,則會回滾

使用回滾:-

DB::beginTransaction();
try{
  //save in table 1

  //save in table 2

  //save in table 3....with a sql error
DB::commit();
}catch(){

DB::rollback(); //if rollback due to error occurs in query 3 then no data will be saved in table 1 and 2...Not Mandatory

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM