Sqlite3提示“…>;”而不是'sqlite>`
我正在学习Sqlite3提示“…>;”而不是'sqlite>`,sqlite,Sqlite,我正在学习sqlite3的初学者教程。第一步是创建一个新的数据库。所以我输入了一个名字(movies.db) 我希望在下一行得到另一个sqlite>提示,并继续学习教程,但是我得到了一个跛脚的…>,之后我可以键入任何我想要的乱码。显然,这是不好的 我的命令提示符是什么样子的: SQLite version 3.8.1 2013-10-17 12:57:35 Enter ".help" for instructions Enter SQL statements terminated with a
sqlite3
的初学者教程。第一步是创建一个新的数据库。所以我输入了一个名字(movies.db
)
我希望在下一行得到另一个sqlite>
提示,并继续学习教程,但是我得到了一个跛脚的…>
,之后我可以键入任何我想要的乱码。显然,这是不好的
我的命令提示符是什么样子的:
SQLite version 3.8.1 2013-10-17 12:57:35
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> $ sqlite3 movies.db
...> gibberish
...> dsds
...> sdada
...> gfgys
...> a
...> Aaaaarrrgh!
...>
如何让sqlite3为我正常工作
请原谅我的菜鸟脾气。我希望我对这个问题的措辞也能对其他新手有所帮助。用a;来结束这个陈述;。所以只要打;然后输入,它将恢复正常(在给出错误后,因为您在这里键入的是错误的sql) 事情是这样的,它认为你还在做一些事情。将长查询分解为以下行可能很有用:
sqlite> select title, description
...> from mytable
...> where id > 10;
“…>表示它正在等待您完成查询,您可以用分号表示。Sqlite工作正常。但是,sqlite movies.db
命令应该从系统命令行发出,而不是从sqlite交互式shell发出。首先退出Sqlite交互式shell(.exit
),然后发出数据库创建命令
sqlite> CREATE TABLE tbl2 (
...> f1 varchar(30) primary key,
...> f2 text,
...> f3 real
...> );
sqlite>
根据报告:
sqlite movies.db
命令,您将自动被放置到sqlite交互式shell中,该shell将等待命令
sqlite> create table tbl1(one varchar(10), two smallint);
…>
shell提示符指示前一行的连续性。如消息所示,您需要使用终止每个数据库命令代码>分号
sqlite> CREATE TABLE tbl2 (
...> f1 varchar(30) primary key,
...> f2 text,
...> f3 real
...> );
sqlite>
我在按了一些箭头键后也处于同样的状态
sqlite> ^[[A^[[A^[[B
...> ;
... 30 more lines of randomly-typed unsuccessful characters ...
...> /
sqlite>
正斜杠字符“/”似乎为我解决了这个问题 我不断地按向上箭头或向左箭头,然后进入下面的内容。
我发现只有control-D有效
如果您错误地输入了其中任何一项-^[[A^[[A^[[B],
然后只需按[键]
在括号后面加上分号就可以了。你看到上面提到的关于输入SQL语句的部分了吗…以分号结尾“
。新的提示指示器用于连续行。实际上,它没有说要放分号。我为这个简单的问题道歉。我正在使用的教程很臭。我会找到一个新的。你的教程很好。你需要做的就是从系统命令行发出sqlite3 movies.db
命令,而不是Sqlite shell。哈让我们看看下面的答案–它们将有助于您的理解。胡言乱语在3.8.1版中被弃用。>用;终止语句。因此只需点击;然后输入,它将恢复正常(在给出错误后,因为您在此处键入的是错误的sql)。这不是真的,至少3.7.11版不是这样。分号会在..>
提示符处返回(只有ctrl-z可以转义)。也许这是个错误?也会遇到这种情况。有时“)”然后输入,然后后跟“;”,然后输入,这样做。如果您在字符串中,则需要;
或“;
。这太可怕了。至少它应该用cmd+c/ctrl+c关闭。control-z将进程移到后台。它仍在运行。