我正在关注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为我正常工作?
请原谅我的新手。我希望我能以一种可能对其他新手有所帮助的方式来表达这个问题。答案 0 :(得分:26)
Sqlite 正常工作。但是,sqlite movies.db
命令应该从 system 命令行发出 - 而不是从Sqlite交互式shell发出。首先退出Sqlite交互式shell(.exit
),然后发出数据库创建命令。
在shell或DOS提示符下,输入:“sqlite3 test.db”。这将创建一个名为“test.db”的新数据库。 (如果您愿意,可以使用其他名称。)
- 醇>
在提示符处输入SQL命令以创建和填充新数据库。
从系统命令行正确执行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>
答案 1 :(得分:11)
使用;终止语句。所以刚刚打;然后输入它将恢复正常(在发出错误之后,因为你在这里键入的是错误的sql)。
发生了什么事情,它认为你还在做某事。将长查询分解为如下行:
sqlite> select title, description
...> from mytable
...> where id > 10;
而且...>表示它正在等待您完成查询,您使用分号表示。
答案 2 :(得分:6)
我不断地向上箭头或向左箭头进入下面。 我发现只有 control - D 有效。
sqlite> ^[[A
...> '
...> ;
...>
...> ;
...>
...>
...>
...>
...> ^C
...> ^X
...>
...>
...>
...>
...>
...>
...> ^E
...> ^R
...> ^T
...> ^Y
...> ^K
...> ^X
...> quit
...> '
...> ;
...> /
...> g
...>
...>
...> .exit
...> )
...> ;
...> /
...> ;
...> /
...> /
...> /
...> /
...> /
...> /
...> /
...> /
...> /
...> /
...> /
...> >
...> ;
...> /
...> '/
...> ;
...> ,
...> ;
...> ^[[D
...> /
...> .quit
...> ∂
' ...> Error: incomplete SQL:
答案 3 :(得分:0)
在按下一些箭头键后我进入了同样的状态
sqlite> ^[[A^[[A^[[B
...> ;
... 30 more lines of randomly-typed unsuccessful characters ...
...> /
sqlite>
正斜线字符' /'似乎为我解决了这个问题。
答案 4 :(得分:-1)
如果您误输入了任何一个-^ [[A ^ [[A ^ [[B, 然后只需按];
先关闭括号再加分号即可。