如何使用具有指定运算符的现有索引添加排除约束?
How to add an exclude constraint with an existing index with specified operator?
假设索引如下:
CREATE INDEX CONCURRENTLY blocked_date_idx_on_since_until_range
ON blocked_date
USING gist(
tstzrange(
"blocked_since",
"blocked_until",
'[]'
)
);
这是 2 个日期的范围,我想:
ALTER TABLE blocked_date
ADD CONSTRAINT blocked_date_since_until_overlap
EXCLUDE
USING INDEX blocked_date_idx_on_since_until_range WITH &&;
此语法无效(我收到错误),但我找不到可以指定在索引上使用哪个运算符的有效语法。
ALTER TABLE 部分的正确语法是什么?
目前没有实现此目的的语法。您需要直接创建约束,不能预先创建索引。
假设索引如下:
CREATE INDEX CONCURRENTLY blocked_date_idx_on_since_until_range
ON blocked_date
USING gist(
tstzrange(
"blocked_since",
"blocked_until",
'[]'
)
);
这是 2 个日期的范围,我想:
ALTER TABLE blocked_date
ADD CONSTRAINT blocked_date_since_until_overlap
EXCLUDE
USING INDEX blocked_date_idx_on_since_until_range WITH &&;
此语法无效(我收到错误),但我找不到可以指定在索引上使用哪个运算符的有效语法。 ALTER TABLE 部分的正确语法是什么?
目前没有实现此目的的语法。您需要直接创建约束,不能预先创建索引。