Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przetestować Select pod kątem aktualizacji w MySQL

otwórz 2 sesję klienta mysql.

w sesji 1:

mysql> start transaction;

mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;

... (result here) ...

1 row in set (0.00 sec)

w sesji 2:

mysql> start transaction;

mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;

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

powrót do sesji 1, aby zaktualizować wybrany rekord (i zwolnić blokadę):

mysql> UPDATE table_name SET something WHERE cond;

mysql> commit;

powrót do sesji 2:

1) wyświetlanie błędu przekroczenia limitu czasu blokady

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

2) lub pokazywanie wyniku

... (result here) ...

1 row in set (0.00 sec)

3) lub nie pokazuje żadnych wyników (ponieważ odpowiedni rekord został zmodyfikowany, więc określony warunek nie został spełniony)

Empty set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć wyniki 2 tabel na podstawie nie warunku

  2. Nie widać wartości pola MySQL BIT podczas korzystania z SELECT

  3. Utwórz bazę danych MySQL z Javy

  4. Odwołanie do wartości tablicy asocjacyjnej z PDO::FETCH_ASSOC

  5. Data od zmiany w programie Excel po przesłaniu do mysql