如何在 PostgreSQL 中的数组上添加外键约束?

Thi*_*mal 4 arrays postgresql constraints postgresql-12 postgresql-13

如何在 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)
);
Run Code Online (Sandbox Code Playgroud)

参与方可以有零个或多个角色 [0-N 关系]

CREATE TABLE party
(
  party_id biging NOT NULL,
  party_role_cd bigint[] NOT NULL,
  CONSTRAINT party_id PRIMARY KEY (party_id)
);
Run Code Online (Sandbox Code Playgroud)

如何在表中添加foreign key约束?party_role_cd arrayparty

Erw*_*ter 6

PostgreSQL 中没有实现这一点。目前,FK 约束仅对整个列值之间的相等性起作用。没有数组到元素的引用。2010 年添加了一个未完成的 TODO 项目。请参阅:

甚至有人尝试实施它,但从未完成。