【发布时间】:2016-07-21 13:26:41
【问题描述】:
在 Eloquent 模型上调用 Laravel increment() 会锁定行吗?
例如:
$userPoints = UsersPoints::where('user_id','=',\Auth::id())->first();
if(isset($userPoints)) {
$userPoints->increment('points', 5);
}
如果在竞争条件下从两个不同的位置调用它,第二个调用会覆盖第一个增量,我们最终仍然只有 5 分吗?或者他们会加起来,我们最终得到 10 分?
【问题讨论】:
-
这是一个简单的更新查询,所以它取决于数据库的实现,但我认为默认配置应该是 10 - 意味着为每个事务锁定表
-
好吧,我会接受这个假设,因为这种情况发生的机会已经非常少了。
-
好的兄弟,看看类似的东西:stackoverflow.com/questions/30527318/…
标签: mysql laravel race-condition