【问题标题】:SQLite command line shell stuck on ...> , CTRL+D not workingSQLite 命令行 shell 卡在 ...> 上, CTRL+D 不起作用
【发布时间】:2021-04-13 16:31:10
【问题描述】:

我刚开始学习数据库,讲师正在使用命令行 shell 教授 SQLite。我从 sqlite.org/download

下载了 sqlite-tools-win32-x86-3350400.zip

当我输入错误命令时,就像您看到的前两个命令一样,我会收到正确的错误消息。但是当我输入一个语法错误:(“史蒂夫,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


【解决方案1】:

你需要

  • a) 使用 "
  • 关闭引号
  • b) 使用 ; 完成命令行
    • 可以同时进行(如第一个示例)

例如:-

sqlite> INSERT INTO contacts VALUES("Steve,87654);
   ...> anything
   ...> ^D
   ...> ;
   ...> '
   ...> ";
Error: near ";": syntax error
sqlite> INSERT INTO contacts VALUES("Steve,87654);
   ...> "
   ...> ;
Error: near ";": syntax error

当然,您甚至可以执行以下操作:-

sqlite> INSERT INTO contacts VALUES("Steve,87654);
sqlite> INSERT INTO contacts VALUES("Steve,87654);
   ...> ",0987,'steve@email.com');
sqlite> SELECT * FROM contacts;
Tim|654321|tim@email.com
Brain|1234|brian@mygmail.com
Steve,87654);
|987|steve@email.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    相关资源
    最近更新 更多