用什么方法可以在业务批量操作的时候保持原子性?例如删除多条文章,但是在中间有一条被删除了,假设出现了错误,如何让整个操作回滚,并定位错误信息?
数据库的事务可以保持原子性却不能保证定位错误信息,加上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("发生错误,请联系维护人员");
}
本文探讨了在进行批量数据库操作时如何确保原子性,特别是在出现错误时如何实现回滚并准确记录错误信息。通过使用数据库事务结合try-catch结构,能够有效保证数据一致性并便于后续问题排查。
3644

被折叠的 条评论
为什么被折叠?



