我要進行多庫操作時,事務是不是這樣的,會不會存第一個提交成功,第二個提交失敗,導致第一個不能滾回
Db::connection('api_log')->beginTransaction();
Db::connection('default')->beginTransaction();
try {
// 業(yè)務處理
Db::connection('api_log')->commit();
Db::connection('default')->commit();
} catch (\Throwable $exception) {
var_dump($exception);
Db::connection('api_log')->rollBack();
Db::connection('default')->rollBack();
}
這種多庫操作,就不要依賴事務,可以在代碼層面判斷,比如庫1的事務1先提交入庫(標記一個狀態(tài)字段,trans=1 表示還有其他庫的事務沒執(zhí)行完),如果庫2事務2也提交成功,則更新庫1的對應字段trans=2 表示數(shù)據(jù)執(zhí)行完成每一次,如果庫2事務2執(zhí)行失敗,則不更新庫1的數(shù)據(jù),或者可以做刪除操作,表示失敗,大概邏輯是這樣,就是通過代碼層面判斷。