2つのmysqlクライアントセッションを開きます。
セッション1:
mysql> start transaction;
mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;
... (result here) ...
1 row in set (0.00 sec)
セッション2:
mysql> start transaction;
mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;
... (no result yet, will wait for the lock to be released) ...
セッション1に戻り、選択したレコードを更新します(そしてロックを解除します):
mysql> UPDATE table_name SET something WHERE cond;
mysql> commit;
セッション2に戻る:
1)ロックタイムアウトエラーが表示されている
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
2)または結果を表示する
... (result here) ...
1 row in set (0.00 sec)
3)または結果が表示されない(対応するレコードが変更されたため、指定された条件が満たされていないため)
Empty set (0.00 sec)