我需要更改数据库中的表格。我想要的是添加类型为integer[]
的列,并直接从另一个查询中为此列添加值,结果是4个ID号。
我目前得到了什么:
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 :(得分:4)
您可以使用postgres数组聚合功能:
update resourcen set rs_insurance = (select array_agg(li_id) from li_versicherungsart)
参考:https://www.postgresql.org/docs/current/static/functions-aggregate.html