У меня есть таблица:
create table mytable (
id bigint not null primary key,
org int,
post int,
op int,
staff boolean
)
и мне нужно создать два ограничения:
- уникально
org
и post
, если персонал true
- уникально
org
, post
и op
, если персонал неверно
Но UNIQUE
в контрапункте нет предиката (пункт where
). Я хочу использовать EXCLUDE
ограничение, поскольку оно имеет предложение where, но EXCLUDE
не поддерживает группу столбцов в одном и том же операторе. I.e:
constraint stafUnique EXCLUDE ( (org,post) with in) where (staff = true)
выдает ошибку.
Как это реализовать?
Спасибо.