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ステートメントが完全にフェッチされた後のステートメント。