如果没有事务回滚表会发生什么?

这种情况很少见,但出于某种原因,我需要一个外部的 try catch 来达到目的。所以我无法控制个别交易。


所以我只有一个外部 catch 语句。


catch(Exception $e) {

   DB::rollback();

   Log:error($e->getMessage());

}

但是,如果在任何事务尚未启动之前出现错误,会发生什么。回滚是否会造成意外损坏?


牧羊人nacy
浏览 100回答 2
2回答

慕的地8271018

您可以致电DB::transactionLevel()获取计数:catch(Exception $e) {&nbsp; &nbsp;if (0 < DB::transactionLevel()) {&nbsp; &nbsp; &nbsp; &nbsp;DB::rollback();&nbsp; &nbsp;}&nbsp; &nbsp;Log:error($e->getMessage());}参考:Illuminate\Database\ConnectionInterface | Laravel API

犯罪嫌疑人X

ROLLBACK适用于“事务”,而不是“表”。一个事务中可能涉及多个表,甚至可能还没有涉及到表。ROLLBACK准备做任何需要的事情,甚至包括“什么都不做”。不用担心。
打开App,查看更多内容
随时随地看视频慕课网APP