Как добавить ограничение внешнего ключа для массива в PostgreSQL?
Как добавить ограничение внешнего ключа для массива в PostgreSQL?
таблица поиска для ролей
CREATE TABLE party_role_cd
(
party_role_cd bigint NOT NULL,
code character varying(80) NOT NULL,
CONSTRAINT party_role_cd PRIMARY KEY (party_role_cd)
);
Партия может иметь ноль или несколько ролей [отношение 0-N]
CREATE TABLE party
(
party_id biging NOT NULL,
party_role_cd bigint[] NOT NULL,
CONSTRAINT party_id PRIMARY KEY (party_id)
);
Как добавить foreign key
ограничение для party_role_cd array
в party
Таблица?
1 ответ
Решение
Это не реализовано в PostgreSQL. В настоящее время ограничения FK действуют только на равенство между целыми значениями столбца. Нет ссылок между элементами. Есть открытый элемент TODO, который был добавлен в 2010 году. См.:
- https://wiki.postgresql.org/wiki/Todo
- https://www.postgresql.org/message-id/1288033876.6278.6.camel@vanquo.pezone.net
Были даже попытки реализовать его, но так и не до конца.