1
EloquentモデルのLaravel increment()
を呼び出すと、行がロックされますか?例えばLaravel `increment()`は行をロックしていますか?
:
$userPoints = UsersPoints::where('user_id','=',\Auth::id())->first();
if(isset($userPoints)) {
$userPoints->increment('points', 5);
}
これは競合状態にある2つの異なる場所から呼び出された場合は、2番目の呼び出しは、最初の増分を上書きすると、我々はまだわずか5ポイントで終わりますか?あるいは、彼らは合計して10ポイントになるでしょうか?
これはデータベースの実装に依存しますが、デフォルトの設定で10になるはずです - つまり、トランザクションごとにテーブルをロックすることを意味します。 –
申し訳ありませんが、それが起こる可能性は十分に低いので、私はその前提についていくつもりです。 – Pat
これは似たようなものです:http://stackoverflow.com/questions/30527318/mysql-concurrent-updates-through-threads-on-a-simple-table –