我正在尝试提出一个表结构,以禁止为给定社区同时创建2个事件,除非该社区为“admin”且id为1。我们的业务逻辑是“每个社区一次只能有1个事件,但管理员可以根据需要创建任意多个重叠事件”
到目前为止,我已经有了这个表,它非常简单,但是我无法找到一个约束来将“all except this”添加到该表中
CREATE TABLE community_event (
community_id integer,
event_start timestamptz,
event_end timestamptz,
canceled boolean DEFAULT false,
EXCLUDE USING gist (
community_id WITH =, tstzrange(event_start, event_end) WITH &&
) WHERE (not canceled)
);
我如何将此要求添加到它?
1条答案
按热度按时间neskvpey1#
好的,我实际上已经很接近了。只需要在WHERE子句中添加条件。