sql >> Databasteknik >  >> RDS >> Mysql

Tabell [tabellnamn] är inte låst

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.




  1. Hur får du din booleska fulltextsökning att ta upp termen C++?

  2. ScaleGrid lägger till Oracle Cloud för Managed Database Hosting

  3. ExecuteBatch-metoden returnerar array med värdet -2 i java

  4. Välj tid mellan två gånger mysql