为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
牧羊人nacy 2022-07-22 10:57:26
这种情况很少见,但出于某种原因,我需要一个外部的 try catch 来达到目的。所以我无法控制个别交易。所以我只有一个外部 catch 语句。catch(Exception $e) {   DB::rollback();   Log:error($e->getMessage());}但是,如果在任何事务尚未启动之前出现错误,会发生什么。回滚是否会造成意外损坏?
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可以致电DB::transactionLevel()获取计数:


catch(Exception $e) {

   if (0 < DB::transactionLevel()) {

       DB::rollback();

   }

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

}

参考:Illuminate\Database\ConnectionInterface | Laravel API


查看完整回答
反对 回复 2022-07-22
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

ROLLBACK适用于“事务”,而不是“表”。一个事务中可能涉及多个表,甚至可能还没有涉及到表。

ROLLBACK准备做任何需要的事情,甚至包括“什么都不做”。不用担心。


查看完整回答
反对 回复 2022-07-22
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信