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

Tabela [nazwa tabeli] nie jest zablokowana

Musisz zablokować każdy stół , którego chcesz używać do momentu LOCK jest zwolniony. Możesz podać completely_different_table_2 tylko READ LOCK , co pozwala innym procesom na odczytanie tej tabeli, gdy jest ona zablokowana:

LOCK TABLES table_1 WRITE, completely_different_table_2 READ;

PS:MySQL ma ku temu powód. Jeśli poprosisz o LOCK , chcesz zamrozić spójny stan swoich danych. Jeśli czytasz dane z completely_different_table_2 wewnątrz twojego LOCK , Twoje dane zapisane w table_1 będzie w jakiś sposób zależeć od tej drugiej tabeli. Dlatego nie chcesz, aby ktokolwiek zmieniał tę tabelę podczas LOCK i poproś o READ LOCK również dla tego drugiego stołu. Jeśli Twoje dane zostały zapisane w table_1 nie zależy od drugiej tabeli, po prostu nie wysyłaj do niej zapytań do momentu LOCK jest zwolniony.




  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 utworzyć bazę danych MySQL w cPanel?

  2. PHP mysqli_real_escape_string zwraca pusty ciąg

  3. Wartość BIGINT UNSIGNED jest poza zakresem

  4. MySQL group_concat_max_len w zapytaniu

  5. Bezpieczeństwo wątków w MySQL's Select Last_Insert_ID