为什么我不能移动到下一个命令行或在MySQL中运行查询?

时间:2020-10-22 04:49:06

标签: mysql

我试图在My SQL Server 5.0中运行它,然后突然->更改为"> 我尝试运行的代码是:-

mysql> insert into gabs
-> VALUES
-> (
->    10,100,98,17,'M','Delhi','Sunil'
-> ),
-> (
->    2,101,95,17,'F','Pune','Neha'
-> ),
-> (
->    15,400,90,17,'M',null,'Amit'
-> ),
-> (
->     6,401,98,18,'M','Haryana','Parth'
-> ),
-> (
->     17,403,98,18,'F',"Chennai','Kamal'
"> ),
"> (
">     18,201,95,18,'M','Delhi','Chita'
"> );
"> \c
">
"> \c;
"> /c
"> /c;
">

我什至用过清除它,但是每次都只是添加了一个新行,我不知道这里发生了什么。

2 个答案:

答案 0 :(得分:1)

要回答您的问题:完成命令的方法是结束字符串。

您通过键入"开始了一个字符串。该字符串永远不会结束,因为您没有输入字符串的结尾"。在键入换行符时,字符串会一直存在,直到以结尾"结尾。

mysql> insert into mytable set t = "a string
    "> more string
    "> even more string
    "> end of the string";
Query OK, 1 row affected (0.01 sec)

'分隔符存在相同的行为。

MySQL默认使用"'作为字符串定界符,但是给定的字符串的开始和结束必须使用相同的引号字符。用任何一种引号字符开头的字符串后,都应使用相同的引号结尾该字符串。

答案 1 :(得分:0)

如@AkhileshMishra所述,单个"会引起问题,将其替换为'将解决您的问题。

关于“移至下一个命令行”,psql会在执行之前继续添加SQL查询,直到找到逻辑端点为止。在您的情况下,您使用了单个",但它一直试图找到结尾"。因此,您无法运行clear命令或其他任何命令。

您可以尝试放置";来表明您已完成查询的编写,然后psql将识别查询中的语法错误并简单地显示出来。之后,您将可以运行新命令。

希望对您有意义,如果您还有任何疑问,请告诉我。