OperationalError, создающий индекс в sqlite

Править: 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); 

Не делайте этого.

6
задан Nathan Spears 6 March 2010 в 10:35
поделиться

1 ответ

Некоторые глупые вопросы:

Является ли вероятность того, что в некорректном заявлении отсутствует слово ON ?

CREATE INDEX IF NOT EXISTS IDX_FILE_FULLPATH_FILE_PARENT_DIR ON table_name (file_fullpath, file_parent_dir);
СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ IDX_FILE_SIZE имя_таблицы (размер_файла); - отсутствует ON
CREATE INDEX IF NOT EXISTS IDX_TAG_TITLE ON table_name (tag_title);

Где-то во всем многословии в вашем вопросе я увидел фразу «синтаксическая ошибка»?

Вы пробовали выполнить простой шаг, выполнив инструкции SQL в интерпретаторе команд sqlite3 и увидев , который синтаксическая ошибка, которую вы действительно получали?

Например,

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. Лотт пытался заставить вас отказаться от лишних слов и сосредоточиться на той части SQL, которая вызвала ошибку?

5
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: