Laravel在数据库上锁定表,直到更新完成

时间:2015-12-17 09:37:12

标签: laravel

我有一些关于数据库的重要表格,例如payment_settings,当我们更新完成的列时,我必须锁定此表,现在我想对此表使用lockForUpdate(),在代码下面是否正确? :

$ps = DB::table('payment_settings')->lockForUpdate()->first();
这是正确的吗?锁表直到完成更新?这个动作对我的客户来说非常重要。

1 个答案:

答案 0 :(得分:0)

如果您想在一个事务中完成所有工作,换句话说,如果您想确保所有更改都成功保留,或者没有一个使用事务:

DB::transaction(function()
{
    //Do some stuff on DB here ...
});

最终,如果你想要更多的控制,你可以这样做:

try{
   DB::beginTransaction();
   //Do some stuff on DB here ...
   DB::commit();
}
catch(Exception $e){
   DB::rollback();
}

Database Transactions

上查看laravel文档以获取更多信息