Mysql
 sql >> база данни >  >> RDS >> Mysql

Отпадането на таблицата кара MySQL да виси

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 оператор систематично, след като произволен оператор за избор е напълно извлечен.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Създаване на вградена таблица в оператора за избор?

  2. MySQL Попълнете липсващите дати между две дати за дадено състояние

  3. Отстраняване на грешки в PDO mySql вмъкнете NULL в базата данни вместо празно

  4. С Laravel Migration, Как да промените типа данни на колона и да актуализирате съществуващите й данни, за да отговарят на новия тип данни, без да използвате необработени SQL заявки?

  5. Как да копирам таблица в MySQL