$a
=
Account::whereId(123)
-‐>lockForUpdate()
-‐>firstOrFail(); //
SELECT
...
FOR
UPDATE //
Locks
row;
anything
else
has
to
wait
in
//
line
until
COMMIT
is
called.
$a-‐>balance
=
calculation($a-‐>balance); $a-‐>save(); //
UPDATEs,
COMMITs //
Other
processes
free
to
run
a
SELECT. Locks: SELECT FOR UPDATE