部分约束 EXCLUDE USING 要点
partial constraint EXCLUDE USING gist
我有以下约束:
ALTER TABLE my_table
ADD CONSTRAINT no_overlap EXCLUDE USING gist (
product_id WITH =,
applicable_period WITH &&
)
现在我意识到,这只应该有条件地检查,例如
ALTER TABLE my_table
ADD CONSTRAINT no_overlap EXCLUDE USING gist (
product_id WITH =,
applicable_period WITH &&
)
WHERE my_table.user_id IS NULL
这可能吗,否则我怎么能以 efficient/advised 的方式实现呢? (我可以添加一个触发器,但我希望有更多 elegant/efficient 方法)。
我应该使用 table 分区吗?
谢谢
According to the manual,你只需要括号:
ALTER TABLE my_table
ADD CONSTRAINT no_overlap
EXCLUDE USING gist (product_id WITH =, applicable_period WITH &&)
WHERE (user_id is null);
我有以下约束:
ALTER TABLE my_table
ADD CONSTRAINT no_overlap EXCLUDE USING gist (
product_id WITH =,
applicable_period WITH &&
)
现在我意识到,这只应该有条件地检查,例如
ALTER TABLE my_table
ADD CONSTRAINT no_overlap EXCLUDE USING gist (
product_id WITH =,
applicable_period WITH &&
)
WHERE my_table.user_id IS NULL
这可能吗,否则我怎么能以 efficient/advised 的方式实现呢? (我可以添加一个触发器,但我希望有更多 elegant/efficient 方法)。
我应该使用 table 分区吗? 谢谢
According to the manual,你只需要括号:
ALTER TABLE my_table
ADD CONSTRAINT no_overlap
EXCLUDE USING gist (product_id WITH =, applicable_period WITH &&)
WHERE (user_id is null);