Bagaimana Anda menghapus kueri MySQL yang tidak dieksekusi dari baris perintah?

88

Misalkan Anda mengetik kueri baris perintah ke dalam database MySQL dan Anda perlu membatalkan dan memulai kembali. Dari shell bash Anda cukup mengetik ctrl-c dan mendapatkan prompt baru. Di MySQL, ctrl-c akan keluar dari klien dan mengembalikan Anda ke shell.

Misalnya, saya memiliki pernyataan SELECT yang panjang dan kompleks yang diketik tetapi saya belum menekan return. Saya menyadari bahwa saya tidak ingin mengirim perintah tetapi saya ingin memiliki perintah di layar sehingga saya dapat menggunakannya sebagai referensi. Saya ingin memberikan jaminan tanpa keluar dari MySQL. Ada ide?

Poin kunci: perintah belum dijalankan .

Logan
sumber
10
Sekadar referensi, di mysql 5.7, hal ini telah diselesaikan. Sekarang Anda dapat melakukan ctrl-c untuk melakukan hal ini.
dkniffin
Tumpukan LAMP sudah sangat tua dan penggunaannya sangat luas. Saya bingung karena butuh waktu selama itu bagi mereka untuk memperbaiki hal-hal yang mungkin dialami orang setiap hari.
ahnbizcad
@dkniffin: Saya tahu ini adalah pertanyaan lama, tetapi masih menduduki peringkat pertama dalam pencarian. Bisakah Anda menambahkan komentar Anda sebagai jawaban (ini sudah merupakan jawaban) untuk membantu lalu lintas yang berkelanjutan?
topi
@ itu baik-baik saja, saya menambahkannya sebagai jawaban
dkniffin

Jawaban:

114

Ketik \c.

Saat Anda memulai MySQL, Anda mungkin akan melihat pesan ini:

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

"Buffer" yang dirujuknya adalah buffer perintah / kueri.

ruakh
sumber
7
Hanya poin kecil: Anda harus melakukan ini sebelum terminator titik koma.
wulftone
Hal yang menyenangkan adalah, itu tidak benar-benar jelas ; apa pun yang diketik tetap terlihat. (Sejujurnya saya tidak akan menebaknya dari pesan tersebut, itulah sebabnya saya tidak pernah mencobanya.)
Michael Scheper
43

Ketik pertama Ctrl+ a, lalu Ctrl+ k.

sampai
sumber
4
Tetapi OP menentukan, "Saya ingin memiliki perintah di layar sehingga saya dapat menggunakannya sebagai referensi."
ruakh
Bekerja pada versi 5.5.40-0.
sampai
1
Tidak bekerja dengan 5.6.28 @Ubuntu. Selain itu, ini adalah urutan untuk mematikan jendela layar saat ini.
Piohen
1
Nah, Anda selalu dapat mengatur urutan ini sebagai jalan pintas untuk ini dan itu. Ini urutan default di emacs dan bash.
hingga
1
Tidak, tentu saja, tidak berfungsi untuk kasus penggunaan saya yang paling umum: Saya lupa titik koma, menekan enter dan alih-alih mengacaukan riwayat saya dengan dua baris yang tidak perlu, saya lebih suka menulis ulang perintah dengan benar.
quazgar
18

Gunakan salah satu pintasan berikut untuk menghapus baris saat ini:

  • Ketik Ctrl+ uuntuk menghapus semuanya dari kursor kembali ke awal baris
  • Ketik Ctrl+ kuntuk menghapus semuanya dari kursor hingga akhir baris

Jika tidak, seperti yang telah ditunjukkan ketik \cdi akhir baris saat ini (pintasan untuk clearperintah) dan kemudian tekan Enter.

bladerz.dll
sumber
0

Jika itu adalah perintah yang panjang, saya biasanya mengarahkan ke awal perintah dan menambahkan omong kosong, jadi perintah itu tidak akan dijalankan, tetapi saya dapat panah ke atas dan mendapatkan akses tanpa harus mengetik ulang. Jika tidak, jika Anda tidak ingin menjalankannya, cukup tekan panah ke atas dan itu akan menggulir Anda melalui riwayat perintah Anda. Temukan perintah singkat, spasi mundur, lalu ketik apa pun yang Anda inginkan.

Mike Purcell
sumber
0

Tergantung pada key binding shell Anda. Anda dapat menekan beranda atau urutan kunci apa pun yang Anda gunakan untuk kembali ke awal, awali kueri Anda dengan X atau apa pun yang membuatnya tidak valid secara sintaks, tekan enter dan Anda baik-baik saja

atxdba
sumber
0

Jika Anda datang ke sini berharap menemukan jawaban yang sama di Transact-SQL, ketik RESET

Posting Impatica
sumber
0

Di mysql 5.7, ini telah diselesaikan. Anda sekarang dapat melakukannya ctrl-cuntuk keluar dari baris perintah SQL.

dkniffin.dll
sumber