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 []数组?
答
您可以使用Postgres的阵列整合功能:
update resourcen set rs_insurance = (select array_agg(li_id) from li_versicherungsart)
参考:https://www.postgresql.org/docs/current/static/functions-aggregate.html
'选择ARRAY_AGG(li_id)...'但你最肯定需要某种合作相关子查询。但是,如果没有关于这两张桌子的更详细的信息以及它们如何相互关联,很难说清楚。 –
工作正常!张贴它作为答案,所以我可以接受它! – Jacob
是的,这是我想要的。但是li_versicherungsart在不同的安装上有所不同。 – Jacob