0

我无法使用此架构创建排除索引。

create table foo_bar(
    foo_id text primary key,
    bar char(3) not null,
    created_at timestamptz not null default current_timestamp,
    system_period tstzrange not null default tstzrange(current_timestamp, null),
    exclude using gist (system_period with &&)
);

create table foo_bar_history(like foo_bar);

alter table foo_bar_history add constraint exclude using gist (system_period with &&);

此处最后的 alter table 行失败了

SQL Error [42601]: ERROR: syntax error at or near "using"

我已经仔细检查了文档,但我真的看不出我在这里做错了什么。

x86_64-pc-linux-gnu 上的 PostgreSQL 9.6.9,由 gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0 编译,64 位

4

1 回答 1

1

您要么必须在之后指定约束名称,CONSTRAINT要么完全省略该关键字,以便 PostgreSQL 自己选择一个名称。

于 2018-11-28T22:34:30.277 回答