Waiting for table metadata lock
drop table tableA name
SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10
Wenn dies Ihre Tabelle ist, sehen Sie sich diesen Link an
Sie haben einen impliziten Deadlock. Beenden Sie die anderen Transaktionen, um den Drop freizugeben, oder beenden Sie den Drop, um die anderen Transaktionen freizugeben.
Sie können KILL verwenden thread_id, in sql_plus.
Ich füge weitere Informationen hinzu, da ich auf eine andere interessante Erfahrung gekommen bin.
Metadata
Deadlocks können auch zwischen einer ddl-Operation auf einer bestimmten Tabelle auftreten (drop
, alter
...) und auswählen Abfrage auf dieser Tabelle.
Ja, select
.
Wenn Sie also in mysql (oder php, zum Beispiel mit pdo::fetch
) und Sie führen eine ddl-Anweisung für dieselbe(n) Tabelle(n) aus, erhalten Sie einen Deadlock.
Eine Lösung für dieses atypische Szenario besteht darin, die impliziten Sperren mit einem commit
freizugeben -Anweisung systematisch, nachdem eine beliebige Select-Anweisung vollständig abgerufen wurde.