Postgres 10.5:如何 link 一个整数数组到单独 table 的主键?
Postgres 10.5: how to link an array of integers to primary keys of separate table?
我有两个 Postgres 表,TABLE_A
和 TABLE_B
。
TABLE_A
包含列 table_b_fks
,其值是一个整数数组(例如 "{1,2,4}"
),它们属于 TABLE_B
的主键集。
TABLE_B
有两列,主键和 text
。
我的目标是创建一个实体化视图,它与 TABLE_A
相同,除了 table_b_fks
整数数组替换为 [=13] 中的 text
数组=].
这可能吗?好像是。有其他选择吗?
事实上,整数数组虽然可以很容易地用于连接表,但不能正式地视为外键:
select table_b_fks, array_agg(name)
from table_a
join table_b on id = any(table_b_fks)
group by 1
请注意,该示例有点简化,您需要 table_a 中的唯一列来标识其行(可用于分组依据)。
我有两个 Postgres 表,TABLE_A
和 TABLE_B
。
TABLE_A
包含列 table_b_fks
,其值是一个整数数组(例如 "{1,2,4}"
),它们属于 TABLE_B
的主键集。
TABLE_B
有两列,主键和 text
。
我的目标是创建一个实体化视图,它与 TABLE_A
相同,除了 table_b_fks
整数数组替换为 [=13] 中的 text
数组=].
这可能吗?好像是
事实上,整数数组虽然可以很容易地用于连接表,但不能正式地视为外键:
select table_b_fks, array_agg(name)
from table_a
join table_b on id = any(table_b_fks)
group by 1
请注意,该示例有点简化,您需要 table_a 中的唯一列来标识其行(可用于分组依据)。