首页 > 解决方案 > Postgres 10.5:如何将整数数组链接到单独表的主键?

问题描述

我有两个 Postgres 表,TABLE_A并且TABLE_B.

TABLE_A包含 column table_b_fks,其值是一个整数数组(例如"{1,2,4}"),它们是 的主键集TABLE_B

TABLE_B有两列,主键和text.

我的目标是创建一个物化视图,除了整数数组被替换为's from的数组TABLE_A之外,它是相同的。table_b_fkstextTABLE_B

这可能吗?似乎postgres 不支持外键数组。有替代品吗?

标签: arrayspostgresqlmaterialized-views

解决方案


事实上,整数数组不能被正式地视为外键,尽管它可以很容易地用于连接表:

select table_b_fks, array_agg(name)
from table_a
join table_b on id = any(table_b_fks)
group by 1

在 db<>fiddle 中测试它。

请注意,该示例有点简化,您需要 table_a 中的唯一列来标识其行(可以在 group by 中使用)。


推荐阅读