Рассмотрим следующую таблицу.
CREATE TABLE IF NOT EXISTS wsfiles
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
website_id integer NOT NULL,
parent_id integer,
archive_id integer,
path character varying,
path_sha character varying NOT NULL,
target character varying,
name character varying NOT NULL,
is_directory boolean
CONSTRAINT uniq_file_website_backup UNIQUE (archive_id, path_sha) ON CONFLICT REPLACE
);
И мне нужно создать следующий уникальный частичный индекс.
CREATE UNIQUE INDEX IF NOT EXISTS idx_unique_directory ON wsfiles(path_sha) WHERE is_directory = 1;
Но при выполнении приведенной выше схемы я получаю синтаксическую ошибку рядом с предложением WHERE в запросе CREATE UNIQUE INDEX. Это хорошо работает на моей локальной машине, и проблема возникает, когда я выполняю на рабочей машине.
Error: near line 98: near "WHERE": syntax error
Версия sqlite3 для производственной машины — 3.7.17.
Версия sqlite3 для локальной машины — 3.8.5.