Следующее может быть не совсем то, что вы ищете, но я не думаю, что есть способ добавить уникальное ограничение для массива.Я все равно не люблю их использовать.
CREATE TYPE days_of_the_week as enum (
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
CREATE TABLE company (
id SERIAL PRIMARY KEY NOT NULL,
company_name CHARACTER VARYING(1024) NOT NULL
);
CREATE TABLE company_active (
id_company integer NOT NULL REFERENCES company(id) ON DELETE CASCADE,
days days_of_the_week NOT NULL
);
ALTER TABLE company_active
ADD CONSTRAINT company_active_unique UNIQUE (id_company, days);
INSERT INTO company (company_name) VALUES ('test');
INSERT INTO company_active (id_company, days)
SELECT id, 'Monday'::days_of_the_week
FROM company;
INSERT INTO company_active (id_company, days)
SELECT id, 'Tuesday'::days_of_the_week
FROM company;