sql >> Database teknologi >  >> RDS >> Mysql

Sådan testes Select for Update i MySQL

åben 2 mysql-klientsession.

på session 1:

mysql> start transaction;

mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;

... (result here) ...

1 row in set (0.00 sec)

på session 2:

mysql> start transaction;

mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;

... (no result yet, will wait for the lock to be released) ...

tilbage til session 1, for at opdatere den valgte post (og frigive låsen):

mysql> UPDATE table_name SET something WHERE cond;

mysql> commit;

tilbage til session 2:

1) viser enten låsetimeoutfejl

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

2) eller viser resultat

... (result here) ...

1 row in set (0.00 sec)

3) eller viser intet resultat (fordi den tilsvarende post er blevet ændret, så den specificerede betingelse blev ikke opfyldt)

Empty set (0.00 sec)


  1. Tabelfiltrering i IRI Workbench

  2. Django modellerer en fremmednøgle til mange borde

  3. DevOps-overvejelser for produktionsklare databaseimplementeringer

  4. Vis værdier fra en MySQL-databasetabel inde i en HTML-tabel på en webside