用什么方法可以在业务批量操作的时候保持原子性?例如删除多条文章,但是在中间有一条被删除了,假设出现了错误,如何让整个操作回滚,并定位错误信息?
数据库的事务可以保持原子性却不能保证定位错误信息,加上try catch就可以定位错误信息了
Db::startTrans();
try{
\app\common\controller\Common::operator_agency_refund($request_data["id"],$request_data["delete_leftstore"]);
Db::commit();
}
catch (\Exception $e)
{
Db::rollback();
\think\Log::error($e->getMessage()."\n".$e->getTraceAsString());
$this->error("发生错误,请联系维护人员");
}