15

有时我忘记用分号“;”结束我的 SQL 查询 在我的 Mac 终端中。发生这种情况时,终端会->在开头设置 a,我无法退出或运行任何其他 SQL 命令。

我该如何退出?

4

6 回答 6

27

您不知道 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-cctrl-d'<enter>"<enter>*/<enter>

于 2015-06-30T14:21:45.057 回答
8

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

于 2012-09-11T16:06:24.257 回答
6

只需输入“;” 然后按回车。在命令行模式下,您可以使用任意数量的输入行来完成查询。因此,您可以执行以下操作:

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

如果你喜欢。

于 2012-09-11T16:08:23.523 回答
5

你可以试试"\q"这对我有用

于 2015-07-07T11:02:43.793 回答
2

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

于 2019-06-05T22:44:06.680 回答
-1

使用 ctrl+c 它将转到下一行。

于 2020-10-01T22:55:11.713 回答