我试图在我的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;
">
我甚至用了clear it,但它每次都添加了一行,我不知道这里发生了什么。
要回答您的问题:完成命令的方法是结束字符串。
您通过键入"
来启动字符串。该字符串从未结束,因为您没有为该字符串键入结束"
。当您键入换行符时,字符串会继续,直到以"
结尾。
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默认使用"
和'
作为字符串分隔符,但给定的字符串必须使用相同的引号作为开头和结尾。一旦用任意一种类型的引号字符开始字符串,就应该用相同类型的引号结束字符串。
正如@AkhileshMishra所提到的,单个"
导致了问题,用'
替换它将解决您的问题。
关于";移动到下一个命令行";,psql在执行之前不断添加SQL查询,直到找到逻辑端点。在您的案例中,您使用了单个"
,它一直在尝试找到一个结束的"
。这就是为什么您不能运行clear命令或任何其他命令的原因。
您可以尝试放置一个"
和;
来表明您已经完成了查询的编写,然后psql将识别查询中的语法错误并简单地显示出来。之后,您将能够运行一个新的命令。
希望这对你有意义,如果你还有任何疑问,请告诉我。