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

Таблица [име на таблица] не е заключена

Трябва да заключите всяка маса , който искате да използвате до LOCK е освободен. Можете да дадете completely_different_table_2 само READ LOCK , което позволява на други процеси да четат тази таблица, докато е заключена:

LOCK TABLES table_1 WRITE, completely_different_table_2 READ;

PS:MySQL има причина да го направи. Ако поискате LOCK , искате да замразите последователно състояние на вашите данни. Ако четете данни от completely_different_table_2 вътре във вашия LOCK , вашите данни са записани в table_1 ще зависи по някакъв начин от тази друга таблица. Следователно не искате никой да променя тази таблица по време на вашия LOCK и поискайте READ LOCK и за тази втора маса. Ако данните ви са записани в table_1 не зависи от другата таблица, просто не я заявявайте до LOCK е освободен.




  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?

  3. Актуализиране на полето, когато не е нула

  4. PHP PDO:как повторното изготвяне на изявление влияе на производителността

  5. Има ли най-добри практики/последователен начин за актуализиране на поле на база данни, което съдържа хранилище ключ-стойност на хеш?