【发布时间】:2021-04-13 16:31:10
【问题描述】:
我刚开始学习数据库,讲师正在使用命令行 shell 教授 SQLite。我从 sqlite.org/download
当我输入错误命令时,就像您看到的前两个命令一样,我会收到正确的错误消息。但是当我输入一个语法错误:(“史蒂夫,87654)例如,它卡在...>等待更多输入。
在互联网上搜索后,用户建议解决方案“CTRL + D”,但它对我不起作用。但是 CTRL+C 只是退出 sqlite3。
我的问题:我如何摆脱...> 继续执行我的命令?为什么 CTRL+D 对我不起作用,因为语法错误或其他可能的原因而无法退出 ...>?如何解决我的问题?
C:\Users\myUser>sqlite3 test.db
SQLite version 3.35.4 2021-04-02 15:20:15
Enter ".help" for usage hints.
sqlite> SELECT * FROM contacts;
Tim|654321|tim@email.com
Brian|1234|brian@mygmail.com
sqlite> INSERT INTO contacts VALUES("Steve", 87654);
Error: table contacts has 3 columns but 2 values were supplied
sqlite> INSERT INTO contacts VALUES(Steve, 87654);
Error: no such column: Steve
sqlite> INSERT INTO contacts VALUES("Steve, 87654); // Intentional syntax error //
...> ^D // Entered CTRL+D //
...> ;
...> // Entered CTRL+C //
Error: unrecognized token: ""Steve, 87654)"
C:\Users\myUser>
【问题讨论】:
-
INSERT INTO contacts VALUES("Steve, 87654);不正确,"后面缺少"Steve导致 sqlite 等待字符串值输入结束。 -
@vasek 我知道最后一个命令是不正确的,假设你知道我知道。你建议结束字符串,所以我可以通过故意得到一个错误来退出 ...>(因为我不希望注册无效的输入),例如继续 "); 并得到错误:“错误:表联系人有 3 列,但提供了 1 个值”。但这仍然不能回答我的其他问题。1. 如果我再次卡在另一个...> 这不是语法错误,如何我要摆脱它吗?2. 为什么 CTRL+D 不起作用?据说它会跳出 ...>
标签: sqlite command-line