【问题标题】:Cannot create Unique Partial Indexes - Sqlite3无法创建唯一部分索引 - Sqlite3
【发布时间】:2016-01-14 09:13:10
【问题描述】:

考虑下表。

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

【问题讨论】:

    标签: indexing sqlite unique-index


    【解决方案1】:

    documentation 说:

    SQLite 从 3.8.0 版本开始支持部分索引。

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 2021-06-22
      • 2021-09-05
      • 2021-01-22
      • 2014-12-29
      • 1970-01-01
      相关资源
      最近更新 更多