Трябва да заключите всяка маса , който искате да използвате до 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
е освободен.