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.