आप कमांड लाइन से एक अप्रकाशित MySQL क्वेरी को कैसे साफ़ करते हैं?


88

मान लीजिए कि आप MySQL डेटाबेस में कमांड लाइन क्वेरी टाइप कर रहे हैं और आपको रद्द करने और शुरू करने की आवश्यकता है। बैश शेल से आप बस ctrl-c टाइप कर सकते हैं और एक नया प्रॉम्प्ट प्राप्त कर सकते हैं। MySQL में, ctrl-c क्लाइंट से बाहर निकलेगा और आपको शेल में लौटाएगा।

उदाहरण के लिए, मेरे पास एक लंबा, जटिल चयन कथन है, लेकिन मैंने अभी तक रिटर्न नहीं मारा है। मुझे एहसास है कि मैं कमांड नहीं भेजना चाहता, लेकिन मैं चाहता हूँ कि कमांड ऑन-स्क्रीन हो ताकि मैं इसे एक संदर्भ के रूप में उपयोग कर सकूं। मैं MySQL छोड़ने के बिना जमानत करना चाहते हैं। कोई विचार?

मुख्य बिंदु: कमांड को अभी तक निष्पादित नहीं किया गया है


10
एक संदर्भ के रूप में, mysql 5.7 में, इसे हल कर दिया गया है। अब आप इसे ठीक करने के लिए ctrl-c कर सकते हैं।
डेक्निफिन

LAMP स्टैक बहुत पुराना है और इस तरह के व्यापक उपयोग हैं। यह मुझे समझ में आता है कि लोगों को सामान को ठीक करने में इतना समय लगता है कि लोग दिन में और दिन में बाहर भाग जाते थे।
अहानिबेकाड

@dkniffin: मुझे पता है कि यह एक पुराना सवाल है, लेकिन यह अभी भी एक खोज पर पहले स्थान पर है। क्या आप अपनी टिप्पणी को एक उत्तर के रूप में जोड़ सकते हैं (यह पहले से ही एक उत्तर है) निरंतर यातायात में मदद करने के लिए?
हैट

@ ठीक है, मैंने इसे एक उत्तर के रूप में जोड़ा
dkniffin

जवाबों:


115

टाइप करें \c

जब आप MySQL शुरू करते हैं, तो आपको यह संदेश दिखाई देगा:

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

"बफ़र" जिसका यह उल्लेख कर रहा है वह कमांड / क्वेरी बफर है।


7
बस एक छोटा बिंदु: आपको यह किसी भी अर्धविराम टर्मिनेटर से पहले करना होगा ।
वुल्फटोन

अच्छी बात यह है, यह वास्तव में इसे स्पष्ट नहीं करता है; जो भी टाइप किया हुआ दिखाई दे रहा है। (मैं ईमानदारी से अनुमान नहीं लगा सकता कि संदेश से, यही वजह है कि मैंने कभी कोशिश नहीं की।)
माइकल शेपर

43

पहले प्रकार Ctrl+ a, फिर Ctrl+ k


4
लेकिन ओपी ने कहा, "मैं स्क्रीन पर कमांड रखना चाहता हूं ताकि मैं इसे संदर्भ के रूप में उपयोग कर सकूं।"
रुख

संस्करण 5.5.40-0 के रूप में काम करता है।
तक

1
5.6.28 @Ubuntu के साथ काम नहीं करता है। बगल में कि यह वर्तमान स्क्रीन विंडो को मारने के लिए एक अनुक्रम है।
पायोेन

1
ठीक है, आप हमेशा इस क्रम को इसके और उसके लिए एक शॉर्टकट के रूप में सेट कर सकते हैं। यह emacs और bash में डिफ़ॉल्ट अनुक्रम है।
तक

1
निश्चित रूप से, मेरे सबसे सामान्य उपयोग के मामले में काम नहीं करता है: मैं अर्धविराम को भूल गया, दर्ज किया गया और एक अनावश्यक दो-लाइनर के साथ मेरे इतिहास को अव्यवस्थित करने के बजाय, मैं सही ढंग से कमांड को फिर से लिखना चाहूंगा।
क्वाजर

18

वर्तमान पंक्ति को हटाने के लिए निम्न शॉर्टकट में से एक का उपयोग करें:

  • टाइप करें Ctrl+ uकर्सर को लाइन शुरू करने के लिए वापस से सब कुछ हटाने के लिए
  • प्रकार Ctrl+ kपंक्ति के अंत में कर्सर से हटाने के लिए सब कुछ करने के लिए

अन्यथा जैसा कि पहले से ही \cवर्तमान लाइन ( clearकमांड के लिए एक शॉर्टकट ) के अंत में संकेत दिया गया है और फिर दबाएं Enter


0

यदि यह एक लंबी कमान है, तो मैं आमतौर पर कमांड की शुरुआत में तीर मारता हूं और अस्पष्टता जोड़ता हूं, इसलिए यह निष्पादित नहीं करेगा, लेकिन मैं इसे फिर से टाइप करने के बिना तीर-अप और पहुंच प्राप्त कर सकता हूं। अन्यथा यदि आप इसे निष्पादित नहीं करना चाहते हैं, तो बस ऊपर-तीर मारो और इसे आपको अपने कमांड इतिहास के माध्यम से स्क्रॉल करना चाहिए। एक छोटा कमांड, बैकस्पेस खोजें, फिर जो चाहें टाइप करें।


0

आपके शेल के प्रमुख बाइंडिंग पर निर्भर करता है। आप घर पर प्रेस कर सकते हैं या आप कभी भी शुरू करने के लिए किस महत्वपूर्ण अनुक्रम का उपयोग कर सकते हैं, एक्स के साथ अपनी क्वेरी को उपसर्ग करें या इसे कभी-कभी अवैध रूप से अमान्य बनाने के लिए, हिट दर्ज करें और आप अच्छे हैं



0

Mysql 5.7 में, यह हल हो गया है। अब आप ctrl-cSQL कमांड लाइन से बाहर निकलने के लिए कर सकते हैं ।

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