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 का उपयोग कर सकते हैं थ्रेड_आईडी, sql_plus में।
एक और दिलचस्प अनुभव के साथ आने के बाद से मैं और जानकारी जोड़ रहा हूँ।
Metadata
किसी दिए गए टेबल पर डीडीएल ऑपरेशन के बीच डेड लॉक समान रूप से हो सकता है (drop
, alter
...) और एक चुनें उस टेबल पर क्वेरी।
हां, select
.
इसलिए, यदि आप mysql (या php, उदाहरण के लिए pdo::fetch
के साथ कर्सर पर लूप करते हैं ), और आप एक ही टेबल पर एक डीडीएल स्टेटमेंट चलाते हैं, तो आपको एक गतिरोध मिलेगा।
इस असामान्य परिदृश्य का एक समाधान निहित ताले को commit
. के साथ जारी करना है किसी भी चुनिंदा स्टेटमेंट को पूरी तरह से प्राप्त करने के बाद व्यवस्थित रूप से स्टेटमेंट।