我在MySQL终端查询中忘记了分号";",如何退出?

17
有时我在Mac终端中忘记以分号“;”结束我的SQL查询语句。 当这种情况发生时,终端会在开头设置一个-> ,我无法退出或运行任何其他SQL命令。
如何退出此模式?

1
只输入一个 ; 不就可以了吗?MySQL 应该会忽略查询语句末尾的所有空格和换行符。 - SexyBeast
6个回答

31

您可能不知道mysql终端的5种不同引用模式。我建议您查看以下链接:

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

上述链接中的相关部分如下:

以下表格显示了您可能会看到的每个提示,并总结了它们对mysql状态的含义。

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系列中,/*>提示在MySQL 5.0.6中实现。
当你想在一行上发出命令但忘记了终止分号时,多行语句通常会意外发生。在这种情况下,mysql会等待更多的输入:
mysql> SELECT USER()
    ->
如果你发现你输入了一条语句但只看到了一个 -> 提示符,那么很可能是mysql在等待分号。如果你没有注意到提示符在告诉你什么,你可能需要一段时间才能意识到自己需要做什么。输入分号以完成语句,mysql将执行它。
TLDR:
要退出,请键入\c、;、ctrl-c或ctrl-d。如果所有这些都失败了,请通过键入'、"或*/来退出引号模式。

9

只需键入 \c 即可清除当前的输入语句


6
只需键入“;”并按回车键即可。在命令行模式下,您可以使用尽可能多的输入行来完成查询。因此,您可以执行以下操作:
>SELECT
>*
>FROM
>table
>WHERE
>id=5
>;

if you like.


5
您可以尝试使用"\q",这个方法对我很有效。

1

使用以下任意一个键盘快捷键:Ctrl+CCtrl+D。这些可以用于立即退出在命令提示符中运行的任何程序。


-1

使用Ctrl+C即可换行。


这会导致大多数程序崩溃,这不是我们的目的。在这里,一个简单的;然后回车就可以解决问题了。 - gildux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接