Postgresql alter table - >添加列+值

问题描述:

我需要更改我的数据库中的表。我想要的是加入类型为integer[]的列,并直接从另一个查询结果为4个id号码的列中添加值。Postgresql alter table - >添加列+值

我目前有:以下错误

ALTER TABLE resourcen add rs_insurance integer[] 
update resourcen set rs_insurance = (select li_id from li_versicherungsart) 

第二个命令返回:

ERROR: column "rs_insurance" is of type integer[] but expression is of type integer 
SQL state: 42804 
Hint: You will need to rewrite or cast the expression. 
Character: 37 

如何我投中的所有ID,以适应转换成int []数组?

+0

'选择ARRAY_AGG(li_id)...'但你最肯定需要某种合作相关子查询。但是,如果没有关于这两张桌子的更详细的信息以及它们如何相互关联,很难说清楚。 –

+0

工作正常!张贴它作为答案,所以我可以接受它! – Jacob

+0

是的,这是我想要的。但是li_versicherungsart在不同的安装上有所不同。 – Jacob

您可以使用Postgres的阵列整合功能:

update resourcen set rs_insurance = (select array_agg(li_id) from li_versicherungsart) 

参考:https://www.postgresql.org/docs/current/static/functions-aggregate.html