MySQL Transactions and Locking Cheatsheet/Lock selected rows for update

Prevent concurrent modifications to matched rows inside a transaction.

Section: locking and concurrency

Lock selected rows for update

sql
sql
SELECT * FROM accounts WHERE id = 1 FOR UPDATE;
Explanation

Common in balance transfers, inventory reservations, and queue consumers.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing locking and concurrency
Lock rows for shared reads
Read rows while protecting against conflicting writes.
OpenIn sheetsqlsame section
Set transaction isolation level
Control read consistency and concurrency behavior.
OpenIn sheetsqlsame section
Inspect InnoDB lock and transaction state
Display detailed InnoDB diagnostics.
OpenIn sheetsqlsame section
Set lock wait timeout for the session
Avoid waiting too long on blocked locks.
OpenIn sheetsqlsame section
Start a transaction
Begin a transaction explicitly.
Commit a transaction
Persist all changes made in the current transaction.