Возможно ли применить ограничение и внешний ключ только тогда, когда все значения не равны NULL? Например, в полиморфном отношении один объект будет иметь несколько внешних ключей, но часто используется только один, поэтому имеет место нарушение. Как я могу избежать этого?
CREATE TABLE IF NOT EXISTS acos (
id SERIAL PRIMARY KEY,
created_at timestamp,
updated_at timestamp,
owner_id varchar(64) NOT NULL,
stack_id varchar(64) DEFAULT NULL,
qac_id varchar(64) DEFAULT NULL,
rights varchar(1024)[],
)
Устанавливается либо stack_id, либо qac_id, но не оба одновременно.
То же самое касается следующего ограничения:
CONSTRAINT name_owner_id UNIQUE
(
name, owner_id
)
Я бы хотел игнорировать ограничение, когда либо name, либо owner_id имеет значение null.