2012-09-11 12 views
9

時々、私のSQLクエリをセミコロン ";"私のMac端末で。これが起きると、ターミナルは最初に->を設定し、これを終了したり、他のSQLコマンドを実行することはできません。セミコロンを忘れました ";" MySQLのターミナルクエリで。どうすれば終了できますか?

どのようにすれば終了できますか?

+3

だけ入力し '私のために働いた"\q"試みることができた。 –

+0

N '\だけではないでしょう';'それを入力しますか? MySQLは、クエリの最後とセミコロンの間のスペースと改行をすべて無視する必要があります。 – SexyBeast

答えて

14

あなたはmysql端末の5つの異なる引用モードを認識していません。私はあなたがそれらを見直す提案:上記のリンクの

https://dev.mysql.com/doc/refman/5.0/en/entering-queries.html

関連部品:

次の表は、あなたが見ることができるプロンプトのそれぞれを示しており、彼らはMySQLがある状態について何を意味するかをまとめたものMySQLの5.0シリーズで。

Prompt Meaning 
mysql> Ready for new command. 

->  Waiting for next line of multiple-line command. 

'>  Waiting for next line, waiting for completion of a string 
     that began with a single quote (“'”). 

">  Waiting for next line, waiting for completion of a string 
     that began with a double quote (“"”). 

`>  Waiting for next line, waiting for completion of an 
     identifier that began with a backtick (“`”). 

/*>  Waiting for next line, waiting for completion of a 
     comment that began with /*. 

に、/*>プロンプトはMySQLの5.0.6で実施されました。

複数行のステートメントは、通常は1行でコマンドを発行しようとしたときに偶発的に発生しますが、終了するセミコロンは忘れてしまいます。最も可能性の高いmysqlはセミコロンを待っている、 - これは(>プロンプトあなたが文を入力しただけで応答があると思います)あなたに起こった場合

mysql> SELECT USER() 
    -> 

:この場合、MySQLは複数の入力を待ち。プロンプトがあなたに何を伝えているのか分からない場合は、あなたがしなければならないことを実現する前にそこに座っているかもしれません。ステートメントを完了するために、セミコロンを入力して、MySQLはそれを実行します。

TLDR:

を終了するには、タイプ\c;ctrl-cまたはctrl-d。これらのすべては、'<enter>"<enter>、または*/<enter>を入力して、あなたがしている引用モードから抜け出す失敗した場合

3

現在の入力文を消去するには\ cと入力してください。

3

「;」と入力するだけです。 Enterキーを押します。コマンドラインモードでは、入力行を任意の数だけ使用して問合せを完了できます。だからあなたは次のようなことをすることができます:

>SELECT 
>* 
>FROM 
>table 
>WHERE 
>id=5 
>; 

好きなことをすることができます。

関連する問題