编辑:简要版
我输入了这个。
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);
不要这样做。
编辑:简要版
我输入了这个。
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);
不要这样做。
一些愚蠢的问题:
是否巧合,有冒犯性语句中缺少单词ON
?
CREATE INDEX IF NOT EXISTS IDX_FILE_FULLPATH_FILE_PARENT_DIR ON table_name (file_fullpath, file_parent_dir);
CREATE INDEX IF NOT EXISTS IDX_FILE_SIZE table_name (file_size); -- 缺少ON
CREATE INDEX IF 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(The Fantastic Rail-Road Diagram)?链接
您写道:“当我在较小的脚本(verifyIndexSmaller)中运行该命令时,它没有错误。如果我再次尝试运行较大的脚本,即使索引已经被较小的脚本创建,我仍然会收到错误。”
您是否考虑过可能是因为您并没有在较小的脚本中运行该命令,而实际上运行了另一个(已修复!)版本的该命令?
现在您明白为什么S.Lott试图让您去掉无用的话语,专注于导致错误的SQL语句了吗?