Öffnen Sie 2 MySQL-Client-Sitzungen.
in Sitzung 1:
mysql> start transaction;
mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;
... (result here) ...
1 row in set (0.00 sec)
in Sitzung 2:
mysql> start transaction;
mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;
... (no result yet, will wait for the lock to be released) ...
zurück zu Sitzung 1, um den ausgewählten Datensatz zu aktualisieren (und die Sperre aufzuheben):
mysql> UPDATE table_name SET something WHERE cond;
mysql> commit;
zurück zu Sitzung 2:
1) Entweder wird ein Sperrzeitüberschreitungsfehler angezeigt
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
2) oder Ergebnis anzeigen
... (result here) ...
1 row in set (0.00 sec)
3) oder kein Ergebnis anzeigen (weil der entsprechende Datensatz geändert wurde, sodass die angegebene Bedingung nicht erfüllt wurde)
Empty set (0.00 sec)