PhpMyAdmin में MYSQL की एक तालिका में सभी रिकॉर्ड हटाएं


122

मैं wampserver 2.2 का उपयोग करता हूं। जब मैं phpMyAdmin में तालिका के सभी रिकॉर्ड हटाना चाहता हूं (सभी का चयन करें) यह केवल एक रिकॉर्ड को हटाता है न कि सभी रिकॉर्ड को। यह सभी रिकॉर्ड क्यों नहीं हटाता है?


3
आपकी क्वेरी पर निर्भर करता है, क्या आपने इस तरह निष्पादित किया? DELETE FROM tableName
जॉन वू

तालिका का नाम हाइलाइट करें और दबाएंSHIFT-DEL
DevlshOne

जवाबों:


130

अपने db -> संरचना पर जाएं और आवश्यक तालिका में खाली करें। यहाँ देखें:

यह स्क्रीनशॉट


167

आपके पास 2 विकल्प हैं deleteऔर truncate:

  1. delete from mytable

    यह तालिका की सभी सामग्री को हटा देगा, ऑटोइनक्रीमेंटल आईडी को रीसेट नहीं करेगा, यह प्रक्रिया बहुत धीमी है। यदि आप विशिष्ट रिकॉर्ड हटाना चाहते हैं, तो अंत में एक क्लॉज जोड़ें।

  2. truncate myTable

    इससे टेबल रीसेट हो जाएगा यानी सभी ऑटो इंक्रीमेंटल फील्ड रीसेट हो जाएंगे। इसका DDL और इसका बहुत तेज होना। आप किसी भी विशिष्ट रिकॉर्ड को नहीं हटा सकते truncate


130

Sql टैब पर जाएं नीचे दिए गए क्वेरी में से एक चलाएं:

delete from tableName;

हटाएं : आपकी तालिका से सभी पंक्तियों को हटा देगा। अगला इन्सर्ट अगली ऑटो इंक्रीमेंट आईडी लेगा।

या

truncate tableName;

Truncate : आपकी तालिका से पंक्तियों को हटा देगा लेकिन यह 1 के साथ नई पंक्ति से शुरू होगा।

उदाहरण के साथ एक विस्तृत ब्लॉग: http://sforsuresh.in/phpmyadmin-de हटाना-rows-mysql-table/


27

इस क्वेरी का उपयोग करें:

DELETE FROM tableName;

नोट: कुछ विशिष्ट रिकॉर्ड को हटाने के लिए आप उस स्थिति को दे सकते हैं जहां क्‍लॉज में क्‍लॉज भी है।

या आप इस क्वेरी का उपयोग कर सकते हैं:

truncate tableName;

यह भी याद रखें कि आपका अन्य तालिका के साथ कोई संबंध नहीं होना चाहिए। यदि तालिका में कोई विदेशी कुंजी बाधा होगी, तो वे रिकॉर्ड हटाए नहीं जाएंगे और त्रुटि देंगे।


19

आप इस आदेश के साथ सभी पंक्तियों को हटा सकते हैं। लेकिन एक बात याद रखें कि एक बार ट्रंक कमांड को चलाने के बाद आप इसे रोलबैक नहीं कर सकते हैं।

  truncate tableName;

11

'ट्रंककेट टेबलनेम' एक मेज पर विफल होगा जिसमें मुख्य बाधा निर्धारित है। यह भी टेबल AUTO_INCREMENTवैल्यू को रिवाइंड नहीं करेगा । इसके बजाय, सभी तालिका प्रविष्टियों को हटा दें और इस sql सिंटैक्स का उपयोग करके अनुक्रमणिका को वापस 1 पर रीसेट करें:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

एक रोचक तथ्य।

मुझे यकीन था कि TRUNCATE हमेशा बेहतर प्रदर्शन करेगा, लेकिन मेरे मामले में, विदेशी कुंजियों के साथ लगभग 30 तालिकाओं वाले एक db के लिए, केवल कुछ पंक्तियों के साथ आबादी में, सभी तालिकाओं को TRUNCATE करने में लगभग 12 सेकंड का समय लगा, केवल कुछ सौ मिलीसेकंड के विपरीत पंक्तियों को प्राप्त करने के लिए। ऑटो इंक्रीमेंट सेट करना कुल मिलाकर लगभग एक सेकंड लगता है, लेकिन यह अभी भी बहुत बेहतर है।

तो मैं सुझाव दूंगा कि दोनों कोशिश करें, देखें कि आपके मामले के लिए कौन सा काम तेजी से होता है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.