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
これがテーブルの場合は、このリンク を参照してください。
暗黙のデッドロックがあります。他のトランザクションを強制終了してドロップを解放するか、ドロップを強制終了して他のトランザクションを解放します。
キル を使用できます sql_plusのthread_id。
別の興味深い経験を思いついたので、さらに情報を追加しています。
Metadata デッドロックは、特定のテーブルでのddl操作間でも同様に発生する可能性があります(drop 、alter ...)および選択 そのテーブルでクエリを実行します。
はい、select 。
したがって、mysql(またはphp、たとえばpdo::fetchを使用)でカーソルをループすると、 )、同じテーブルでddlステートメントを実行すると、デッドロックが発生します。
この非定型シナリオの1つの解決策は、commitを使用して暗黙的なロックを解放することです。 selectステートメントが完全にフェッチされた後のステートメント。