Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да тествате избора за актуализиране в MySQL

отворете 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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Уникално ограничение за множество полета

  2. MySQL процедура в рамките на Select?

  3. Разберете къде се забавя вашият PHP код (проблем с производителността)

  4. mysql - имате нужда от две ограничения?

  5. Низ за връзка с база данни и сортиране