यदि आपने अभी-अभी एक बड़ी क्वेरी मारी है, तो इसमें समय लगेगा rollback
। यदि आप मारे गए क्वेरी को वापस करने से पहले एक और क्वेरी जारी करते हैं, तो आपको लॉक टाइमआउट त्रुटि मिल सकती है। यही मेरे साथ हुआ। समाधान बस थोड़ा इंतजार करने का था।
विवरण:
मैंने लगभग 1 मिलियन पंक्तियों में से लगभग 900,000 निकालने के लिए एक DELETE क्वेरी जारी की थी।
मैंने इसे गलती से चलाया (केवल 10% पंक्तियों को हटा दिया):
DELETE FROM table WHERE MOD(id,10) = 0
इसके बजाय (90% पंक्तियों को निकालता है):
DELETE FROM table WHERE MOD(id,10) != 0
मैं 90% पंक्तियों को निकालना चाहता था, 10% को नहीं। इसलिए मैंने MySQL कमांड लाइन में प्रक्रिया को मार डाला, यह जानते हुए कि यह अब तक हटाए गए सभी पंक्तियों को वापस करेगा।
फिर मैंने तुरंत सही कमांड चलाई, और इसके तुरंत lock timeout exceeded
बाद एक त्रुटि हुई। मुझे एहसास हुआ कि ताला वास्तव rollback
में पृष्ठभूमि में अभी भी मारे गए क्वेरी का हो सकता है। इसलिए मैंने कुछ सेकंड इंतजार किया और क्वेरी को फिर से चलाया।