sql >> Database >  >> RDS >> Mysql

Tabel [tabelnaam] is niet vergrendeld

Je moet elke tafel vergrendelen , die u wilt gebruiken tot de LOCK is vrijgegeven. Je kunt completely_different_table_2 . geven alleen een READ LOCK , waarmee andere processen deze tabel kunnen lezen terwijl deze is vergrendeld:

LOCK TABLES table_1 WRITE, completely_different_table_2 READ;

PS:MySQL heeft daar een reden voor. Als u een LOCK . aanvraagt , wilt u een consistente staat van uw gegevens bevriezen. Als u gegevens leest van completely_different_table_2 in je LOCK , uw gegevens geschreven naar table_1 zal op de een of andere manier afhangen van deze andere tabel. Daarom wil je niet dat iemand deze tabel verandert tijdens je LOCK en vraag een READ LOCK aan ook voor deze tweede tafel. Als uw gegevens zijn geschreven naar table_1 is niet afhankelijk van de andere tabel, vraag het gewoon niet op tot de LOCK wordt vrijgegeven.




  1. Invoegen in een mysql-tabel en alle huidige gegevens overschrijven

  2. Mysql single query join 3 table en krijg alle resultaten

  3. Oracle Sequence beginnend met 2 in plaats van 1

  4. Hoe laadt uw Oracle ODBC-stuurprogramma de Oracle-client?