コマンドラインから未実行のMySQLクエリをクリアするにはどうすればよいですか?


88

MySQLデータベースにコマンドラインクエリを入力していて、キャンセルして最初からやり直す必要があるとします。bashシェルから、ctrl-cと入力するだけで、新しいプロンプトが表示されます。MySQLでは、ctrl-cはクライアントを終了し、シェルに戻ります。

たとえば、長くて複雑なSELECTステートメントを入力しましたが、まだReturnキーを押していません。コマンドを送信したくないのですが、参照として使用できるようにコマンドを画面に表示したいと思います。MySQLを終了せずに救済したいのですが。何か案は?

キーポイント:コマンドはまだ実行されていません


10
参考までに、mysql5.7ではこれが解決されました。これで、ctrl-cを実行してこれを正確に実行できます。
dkniffin 2014年

LAMPスタックは非常に古く、非常に広く使用されています。人々が日々遭遇するであろうものを彼らが修正するのにそれだけ長い時間がかかることは私を当惑させます。
ahnbizcad 2017

@dkniffin:これは古い質問だと思いますが、それでも検索で1位にランクされています。継続的なトラフィックを支援するために、コメントを回答として追加できますか(すでに回答です)。
帽子

大丈夫@hat、私は答えとしてこれを追加しました
dkniffin

回答:


113

タイプ\c

MySQLを起動すると、次のメッセージが表示される可能性があります。

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

それが参照している「バッファ」は、コマンド/クエリバッファです。


7
ほんの小さなポイント:セミコロンターミネータの前にこれを行う必要があります。
wulftone 2016年

良い点は、実際にはクリアされないことです。入力したものはすべて表示されたままになります。(私は正直に言って、メッセージからそれを推測しなかったので、私は試したことはありませんでした。)
Michael Scheper 2017年

43

最初にCtrl+と入力しa、次にCtrl+と入力しkます。


4
しかし、OPは、「コマンドを画面に表示して、参照として使用できるようにしたい」と指定しました。
ruakh 2014年

バージョン5.5.40-0以降で動作します。
2015年

1
5.6.28@Ubuntuでは動作しません。それに加えて、これは現在の画面ウィンドウを強制終了するシーケンスです。
ピオヘン2016

1
さて、あなたはいつでもこのシーケンスをこれとあれのショートカットとして設定することができます。これはemacsとbashのデフォルトのシーケンスです。
2016

1
もちろん、私の最も一般的な使用例では機能しません。セミコロンを忘れてEnterキーを押し、不要な2ライナーで履歴を乱雑にする代わりに、コマンドを正しく書き直したいと思います。
quazgar

18

次のショートカットのいずれかを使用して、現在の行を削除します。

  • Ctrl+uと入力して、カーソルから行頭までのすべてを削除します
  • Ctrl+kと入力して、カーソルから行末までのすべてを削除します

それ以外の場合は、すでに示したよう\cに、現在の行の最後に入力して(clearコマンドのショートカット)、を押しEnterます。


0

長いコマンドの場合、通常はコマンドの先頭に矢印を付けて意味不明なものを追加するため、実行されませんが、上向き矢印を使用して、再入力せずにアクセスできます。それ以外の場合、実行したくない場合は、上矢印を押すだけで、コマンド履歴がスクロールされます。短いコマンド、バックスペースを見つけて、必要なものを入力します。


0

シェルのキーバインディングによって異なります。ホームキーを押すか、最初に戻るために使用するキーシーケンスを押したり、クエリの前にXを付けたり、構文的に無効にするものを押したりして、Enterキーを押すと問題ありません。


0

Transact-SQLで同じ答えを見つけたいと思ってここに来た場合は、次のように入力します。 RESET


0

mysql 5.7では、これは解決されています。これでctrl-c、SQLコマンドラインを終了することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.