aprire 2 sessioni client MySQL.
nella sessione 1:
mysql> start transaction;
mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;
... (result here) ...
1 row in set (0.00 sec)
nella sessione 2:
mysql> start transaction;
mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;
... (no result yet, will wait for the lock to be released) ...
torna alla sessione 1, per aggiornare il record selezionato (e rilasciare il blocco):
mysql> UPDATE table_name SET something WHERE cond;
mysql> commit;
torna alla sessione 2:
1) che mostra un errore di timeout del blocco
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
2) o mostrando il risultato
... (result here) ...
1 row in set (0.00 sec)
3) o non mostra alcun risultato (perché il record corrispondente è stato modificato, quindi la condizione specificata non è stata soddisfatta)
Empty set (0.00 sec)