Sqlite3提示`...>`而不是`sqlite>`

时间:2013-10-31 15:45:20

标签: 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 ";"
sqlite> $ sqlite3 movies.db
   ...> gibberish
   ...> dsds
   ...> sdada
   ...> gfgys
   ...> a
   ...> Aaaaarrrgh!
   ...>

如何让sqlite3为我正常工作?

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

5 个答案:

答案 0 :(得分:26)

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

根据quickstart documentation

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

  2.   
  3. 在提示符处输入SQL命令以创建和填充新数据库。

  4.   

从系统命令行正确执行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, 然后只需按];

先关闭括号再加分号即可。