【问题标题】:sqlite script is not executing from the command linesqlite 脚本未从命令行执行
【发布时间】:2019-03-11 04:51:49
【问题描述】:

我已经为我的问题 Execute SQLite script 引用了以下链接,但它似乎对我的经验没有帮助。

我是 sqlite 新手,目前正在尝试使用 .read FILENAME 函数从命令行执行创建表脚本。我的代码如下:

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE MovieList (ID   VARCHAR(255) PRIMARY KEY,
 Title    VARCHAR(255),
 Studio   VARCHAR(255)            ,
 Released   VARCHAR(255)        ,
 Status   VARCHAR(30)             ,
 Sound    VARCHAR(30)             ,
 Versions   VARCHAR(10)         ,
 Price   VARCHAR(15)         ,
 Rating   VARCHAR(15)             ,
 Movie_Year   VARCHAR(5)      ,
 Genre  VARCHAR(30)         ,
 Aspect   VARCHAR(15)             ,
 UPC   VARCHAR(255)             ,
 Release_Date   VARCHAR(255)                ,
 Last_Updated   VARCHAR(255)                 
);
COMMIT;

我得到的错误是Error: incomplete SQL: ??P,我不太确定如何解决这个问题。另一种方法是创建表并导出 .dump 文件 - 它具有与上述相同的逻辑。有什么我可能遗漏的吗?

【问题讨论】:

  • 您究竟是如何创建文件的?
  • @CL。我最初创建了脚本并得到了错误。此后,我在命令提示符下运行了所有内容(有效)。导出文件,并将结构复制到新脚本中,并得到相同的错误。我只是想知道为什么。
  • 哪个编辑器?哪种编码?
  • @CL。 sublime3 和 UTF-8
  • 我猜编辑器在文件开头存储了一个字节顺序标记。

标签: sqlite


【解决方案1】:

您的 SQL 是正确的,我已将您的脚本存储到 script.sql 并运行:

sqlite3.exe my.db

sqlite> .read script.sql
sqlite> .exit

已正确创建所需结构的数据库。 SQLite 版本 3.14.2

通常Error: incomplete SQL: 会向您显示错误的语句。 ??P 表示文件开头有问题。在 Notepad++ 中打开它,View -> Show Symbol -> Show All Characters 并检查那里有什么问题。

【讨论】:

  • 谢谢你 - 我已经检查过了,没有什么明显的。我确实认为文件的开头会是一个问题,但没有找到解决方案。
  • 我最终创建了一个新的 n++ 文件并将其放入其中。它有效 - 但我仍然不知道为什么:) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2020-04-15
  • 2023-03-06
相关资源
最近更新 更多