Postgresql alter table - >添加列+值

时间:2016-11-23 09:40:17

标签: postgresql alter

我需要更改数据库中的表格。我想要的是添加类型为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 []数组?

1 个答案:

答案 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