无法创建唯一的部分索引 - Sqlite3
Cannot create Unique Partial Indexes - Sqlite3
考虑以下 table。
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;
但是在执行上述模式时,我在 CREATE UNIQUE INDEX 查询中的 WHERE 子句附近遇到语法错误。这在我的本地机器上运行良好,当我在生产机器上执行时出现问题。
Error: near line 98: near "WHERE": syntax error
生产机sqlite3版本为3.7.17
本机sqlite3版本为3.8.5
Partial indexes have been supported in SQLite since version 3.8.0.
考虑以下 table。
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;
但是在执行上述模式时,我在 CREATE UNIQUE INDEX 查询中的 WHERE 子句附近遇到语法错误。这在我的本地机器上运行良好,当我在生产机器上执行时出现问题。
Error: near line 98: near "WHERE": syntax error
生产机sqlite3版本为3.7.17
本机sqlite3版本为3.8.5
Partial indexes have been supported in SQLite since version 3.8.0.