38

我正在关注初学者教程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 为我正常工作?

原谅我的新手。我希望我以一种可能对其他新手也有帮助的方式来表达这个问题。

4

5 回答 5

29

Sqlite工作正常。但是,该sqlite movies.db命令应该从您的系统命令行发出,而不是从 Sqlite 交互式 shell 发出。首先退出 Sqlite 交互式 shell ( .exit),然后发出数据库创建命令。

根据快速入门文档

  1. 在 shell 或 DOS 提示符下,输入:“sqlite3 test.db”。这将创建一个名为“test.db”的新数据库。(如果您愿意,可以使用不同的名称。)

  2. 在提示符处输入 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>
于 2013-10-31T15:52:43.253 回答
14

用 ; 结束语句。所以就打; 然后输入它会恢复正常(在给出错误后,因为你在这里输入的是错误的sql)。

发生的事情是它认为你仍在做某事。将长查询分解成这样的行会很有用:

sqlite> select title, description
   ...> from mytable
   ...> where id > 10;

...> 表示它正在等待您完成查询,您用分号表示。

于 2013-10-31T15:48:55.507 回答
9

我不断地按向上箭头或向左箭头并进入下面的内容。我发现只有control-D有效。

sqlite> ^[[A
   ...> '
   ...> ;
   ...> 
   ...> ;
   ...> 
   ...> 
   ...> 
   ...> 
   ...> ^C
   ...> ^X
   ...> 
   ...> 
   ...> 
   ...> 
   ...> 
   ...> 
   ...> ^E
   ...> ^R

   ...> ^T
   ...> ^Y
   ...> ^K
   ...> ^X
   ...> quit
   ...> '
   ...> ;
   ...> /
   ...> g
   ...> 
   ...> 
   ...> .exit
   ...> )
   ...> ;
   ...> /
   ...> ;
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> >
   ...> ;
   ...> /
   ...> '/
   ...> ;
   ...> ,
   ...> ;
   ...> ^[[D
   ...> /
   ...> .quit
   ...> ∂
'  ...> Error: incomplete SQL: 
于 2017-05-16T19:10:40.527 回答
0

在按了一些箭头键后我进入了同样的状态

sqlite> ^[[A^[[A^[[B
   ...> ;
   ... 30 more lines of randomly-typed unsuccessful characters ...
   ...> /
sqlite>

正斜杠字符“/”似乎为我解决了这个问题。

于 2017-02-14T21:45:30.040 回答
-1

如果您错误地输入了其中任何一个 - ^[[A^[[A^[[B,则只需按];

用分号关闭括号就可以了。

于 2019-03-01T13:17:14.613 回答