The FOR UPDATE clause of SELECT applies only when autocommit
is set to 0 or the SELECT is enclosed in a transaction. A
lock is acquired on the rows, and other transactions are
prevented from writing the rows, acquire locks, and from
reading them (unless their isolation level is READ
UNCOMMITTED).
 
If autocommit is set to 1, the LOCK IN SHARE MODE and FOR
UPDATE clauses have no effect.
 
If the isolation level is set to SERIALIZABLE, all plain
SELECT statements are converted to SELECT ... LOCK IN SHARE
MODE.
 
Example
 
SELECT * FROM trans WHERE period=2001 FOR UPDATE;
 


URL: https://mariadb.com/kb/en/for-update/