Du måste låsa alla bord , som du vill använda tills LOCK
är släppt. Du kan ge completely_different_table_2
endast ett READ LOCK
, som tillåter andra processer att läsa den här tabellen medan den är låst:
LOCK TABLES table_1 WRITE, completely_different_table_2 READ;
PS:MySQL har en anledning att göra det. Om du begär en LOCK
, vill du frysa ett konsekvent tillstånd för dina data. Om du läser data från completely_different_table_2
inuti ditt LOCK
, dina data skrivna till table_1
kommer på något sätt att bero på denna andra tabell. Därför vill du inte att någon ska ändra den här tabellen under din LOCK
och begär ett READ LOCK
även för detta andra bord. Om din data skrivits till table_1
inte beror på den andra tabellen, fråga bara inte den förrän LOCK
släpps.