Devi bloccare ogni tavolo , che vuoi usare fino al LOCK
è rilasciato. Puoi fornire completely_different_table_2
solo un READ LOCK
, che consente ad altri processi di leggere questa tabella mentre è bloccata:
LOCK TABLES table_1 WRITE, completely_different_table_2 READ;
PS:MySQL ha una ragione per farlo. Se richiedi un LOCK
, vuoi bloccare uno stato coerente dei tuoi dati. Se leggi i dati da completely_different_table_2
all'interno del tuo LOCK
, i tuoi dati scritti in table_1
dipenderà in qualche modo da quest'altra tabella. Pertanto non vuoi che nessuno modifichi questa tabella durante il tuo LOCK
e richiedi un READ LOCK
anche per questo secondo tavolo. Se i tuoi dati sono stati scritti su table_1
non dipende dall'altra tabella, semplicemente non interrogarla fino al LOCK
viene rilasciato.