当前位置:  开发笔记 > 编程语言 > 正文

在SQL中创建索引的OperationalError

如何解决《在SQL中创建索引的OperationalError》经验,为你挑选了1个好方法。

编辑:TL; DR版本

我输入了这个

CREATE INDEX IF NOT EXISTS IDX_FILE_SIZE table_name (file_size); 

而不是这个

CREATE INDEX IF NOT EXISTS IDX_FILE_SIZE ON table_name (file_size); 

不要那样做.



1> John Machin..:

一些愚蠢的问题:

犯罪陈述是否遗漏了这个词,这是一个可靠的证据ON吗?

如果没有 table_name(file_fullpath,file_parent_dir)上存在IDX_FILE_FULLPATH_FILE_PARENT_DIR,则创建索引;
CREATE INDEX IF NOT NOT EXISTS IDX_FILE_SIZE table_name(file_size); - 缺少ON
CREATE INDEX IF NOT NOT EXISTS IDX_TAG_TITLE ON table_name(tag_title);

在你问题的所有措辞的某处,我是否看到了"语法错误"这个短语?

你尝试运行在sqlite3的命令解释器,看到SQL语句的简单的步骤,语法错误,你实际上得到?

例如

SQLite version 3.6.14
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table foo (bar int, zot int);
sqlite> create index barx on foo(bar);
sqlite> create index zotx    foo(zot);
SQL error: near "foo": syntax error
sqlite>

您是否考虑过在文档中阅读TFRRD(神奇的铁路图)?

你写道:""当我在较小的脚本(verifyIndexSmaller)中运行该命令时,它没有给出任何错误.如果我再次尝试运行更大的脚本,即使索引是由较小的脚本创建的,我仍然得到错误""".

您是否考虑过在较小的脚本中没有运行该命令的可能性,但实际上运行了该命令的另一个(固定的!)版本?

你现在明白为什么S.Lott试图让你削减华夫饼干并专注于导致错误的SQL片段?

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有