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
Jika ini meja Anda, lihat tautan ini
Anda memiliki kebuntuan implisit. Bunuh transaksi lain untuk melepaskan drop, atau matikan drop untuk melepaskan transaksi lainnya.
Anda dapat menggunakan BUNUH thread_id, di sql_plus.
Saya menambahkan informasi lebih lanjut karena saya menemukan pengalaman menarik lainnya.
Metadata
Kunci mati mungkin sama-sama terjadi antara operasi ddl pada tabel tertentu (drop
, alter
...) dan pilih permintaan di tabel itu.
Ya, select
.
Jadi, jika Anda mengulang kursor di mysql (atau php, misalnya dengan pdo::fetch
), dan Anda menjalankan pernyataan ddl pada tabel yang sama, Anda akan menemui jalan buntu.
Salah satu solusi untuk skenario atipikal ini adalah melepaskan kunci implisit dengan commit
pernyataan secara sistematis setelah pernyataan terpilih diambil sepenuhnya.