Você precisa bloquear todas as tabelas , que você deseja usar até que o
LOCK
é libertado. Você pode fornecer completely_different_table_2
apenas um READ LOCK
, que permite que outros processos leiam esta tabela enquanto ela está bloqueada:LOCK TABLES table_1 WRITE, completely_different_table_2 READ;
PS:MySQL tem uma razão para fazê-lo. Se você solicitar um
LOCK
, você deseja congelar um estado consistente de seus dados. Se você ler dados de completely_different_table_2
dentro do seu LOCK
, seus dados gravados em table_1
dependerá de alguma forma dessa outra tabela. Portanto, você não quer que ninguém altere esta tabela durante o seu LOCK
e solicite um READ LOCK
para esta segunda tabela também. Se seus dados forem gravados em table_1
não depende da outra tabela, simplesmente não a consulte até que o LOCK
é libertado.