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
Ако това е вашата таблица, вижте тази връзка
имате неявна задънена улица. Убийте другите транзакции, за да освободите пускането, или убийте пускането, за да освободите другите транзакции.
Можете да използвате KILL thread_id, в sql_plus.
Добавям допълнителна информация, тъй като попаднах на друго интересно преживяване.
Metadata
Мъртви заключвания могат да се случат еднакво между ddl операция на дадена таблица (drop
, alter
...) и избор запитване на тази таблица.
Да, select
.
Така че, ако прекосите курсора в mysql (или php, например с pdo::fetch
), и стартирате оператор ddl на същата(и) таблица(и), ще получите безизходица.
Едно от решенията на този нетипичен сценарий е освобождаването на имплицитните заключвания с commit
оператор систематично, след като произволен оператор за избор е напълно извлечен.