คุณจะล้างแบบสอบถาม MySQL ที่ไม่ได้ดำเนินการออกจากบรรทัดคำสั่งได้อย่างไร


88

สมมติว่าคุณกำลังพิมพ์แบบสอบถามบรรทัดคำสั่งลงในฐานข้อมูล MySQL และคุณต้องยกเลิกและเริ่มต้นใหม่ จาก bash shell คุณสามารถพิมพ์ ctrl-c แล้วรับพรอมต์ใหม่ ใน MySQL ctrl-c จะออกจากไคลเอนต์และส่งคุณกลับไปที่เชลล์

ตัวอย่างเช่นฉันมีคำสั่ง SELECT ที่ซับซ้อนและยาวพิมพ์ลงไป แต่ฉันยังไม่ได้กด return ฉันรู้ว่าฉันไม่ต้องการส่งคำสั่ง แต่ฉันต้องการให้มีคำสั่งบนหน้าจอเพื่อที่ฉันจะได้ใช้เป็นข้อมูลอ้างอิง ฉันต้องการประกันตัวโดยไม่ออกจาก MySQL ความคิดใด ๆ ?

จุดสำคัญ: คำสั่งยังไม่ได้รับการดำเนินการ


10
เช่นเดียวกับการอ้างอิงใน mysql 5.7 สิ่งนี้ได้รับการแก้ไขแล้ว ตอนนี้คุณสามารถทำ ctrl-c เพื่อทำสิ่งนี้ได้
dkniffin

LAMP stack นั้นเก่ามากและมีการใช้งานอย่างแพร่หลาย ทำให้ฉันประหลาดใจที่ต้องใช้เวลานานขนาดนั้นกว่าที่พวกเขาจะแก้ไขสิ่งต่างๆที่ผู้คนต้องเจอในแต่ละวัน
ahnbizcad

@dkniffin: ฉันรู้ว่านี่เป็นคำถามเก่า แต่ก็ยังติดอันดับต้น ๆ ในการค้นหา คุณสามารถเพิ่มความคิดเห็นของคุณเป็นคำตอบ (เป็นคำตอบแล้ว) เพื่อช่วยในการเข้าชมอย่างต่อเนื่อง
หมวก

@ เอาล่ะฉันเพิ่มเป็นคำตอบ
dkniffin

คำตอบ:


115

ประเภท\c.

เมื่อคุณเริ่ม MySQL คุณจะเห็นข้อความนี้:

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

"บัฟเฟอร์" ที่อ้างถึงคือบัฟเฟอร์คำสั่ง / แบบสอบถาม


7
เพียงจุดเล็ก ๆ : คุณต้องทำสิ่งนี้ก่อนเทอร์มิเนเตอร์อัฒภาค
wulftone

สิ่งที่ดีคือมันไม่จริงล้างมัน สิ่งที่พิมพ์ยังคงปรากฏให้เห็น (ฉันเดาไม่ออกจริงๆว่าจากข้อความซึ่งเป็นสาเหตุที่ฉันไม่เคยลอง)
Michael Scheper

43

ประเภทแรกCtrl+ aแล้ว+Ctrlk


4
แต่ OP ระบุว่า "ฉันต้องการมีคำสั่งบนหน้าจอเพื่อที่ฉันจะได้ใช้เป็นข้อมูลอ้างอิง"
ruakh

ทำงานเป็นเวอร์ชัน 5.5.40-0
จนถึง

1
ใช้ไม่ได้กับ 5.6.28 @Ubuntu นอกจากนี้เป็นลำดับเพื่อฆ่าหน้าต่างหน้าจอปัจจุบัน
Piohen

1
คุณสามารถตั้งค่าลำดับนี้เป็นทางลัดสำหรับสิ่งนี้และสิ่งนั้นได้เสมอ เป็นลำดับเริ่มต้นใน emacs และ bash
จนถึง

1
แน่นอนว่าใช้ไม่ได้กับกรณีการใช้งานทั่วไปของฉัน: ฉันลืมอัฒภาคกด Enter และแทนที่จะทำให้ประวัติของฉันยุ่งเหยิงด้วยสองซับที่ไม่จำเป็นฉันควรเขียนคำสั่งใหม่ให้ถูกต้อง
quazgar

18

ใช้ทางลัดต่อไปนี้เพื่อลบบรรทัดปัจจุบัน:

  • พิมพ์Ctrl+ uเพื่อลบทุกอย่างจากเคอร์เซอร์กลับไปที่จุดเริ่มต้นบรรทัด
  • พิมพ์Ctrl+ kเพื่อลบทุกอย่างตั้งแต่เคอร์เซอร์ไปจนถึงท้ายบรรทัด

มิฉะนั้นตามที่ระบุไว้แล้วชนิด\cที่ส่วนท้ายของบรรทัดปัจจุบัน (ทางลัดสำหรับการให้clearคำสั่ง) Enterและกด


0

หากเป็นคำสั่งแบบยาวฉันมักจะลูกศรไปที่จุดเริ่มต้นของคำสั่งและเพิ่มคำที่ไม่เหมาะสมดังนั้นมันจะไม่ทำงาน แต่ฉันสามารถขึ้นลูกศรและเข้าถึงได้โดยไม่ต้องพิมพ์ซ้ำ มิฉะนั้นหากคุณไม่ต้องการดำเนินการเพียงแค่กดลูกศรขึ้นและมันจะเลื่อนคุณไปตามประวัติคำสั่งของคุณ ค้นหาคำสั่งสั้น ๆ backspace จากนั้นพิมพ์สิ่งที่คุณต้องการ


0

ขึ้นอยู่กับการผูกคีย์ของเชลล์ของคุณ คุณสามารถกดที่บ้านหรือลำดับคีย์ที่คุณใช้เพื่อกลับไปที่จุดเริ่มต้น, นำหน้าแบบสอบถามของคุณด้วย X หรือสิ่งที่เคยทำให้มันไม่ถูกต้องทางวากยสัมพันธ์กด Enter และคุณก็ทำได้ดี



0

ใน mysql 5.7 สิ่งนี้ได้รับการแก้ไขแล้ว ตอนนี้คุณสามารถทำได้ctrl-cเพื่อออกจากบรรทัดคำสั่ง SQL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.