如何将数据以阵列格式从一个表插入到另一个表?

时间:2019-07-06 13:35:01

标签: sql postgresql insert

我要设置两个Postgres表table 1和table 2。

表1具有user_id以及名称和描述。 表2具有与user相同的user_id以及名称和描述数组。

现在,我想将数据插入到table1的table2的名称和描述数组中。表1中所有具有相同user_id的条目都应在表2中具有单个条目,并且该用户具有与user_id相同的用户,并且名称和描述数组应具有其余数据。

id UUID PRIMARY KEY,
user_id UUID NOT NULL,
name VARCHAR NOT NULL,
description VARCHAR NOT NULL
)

table2(
id UUID PRIMARY KEY,
user UUID NOT NULL,
name VARCHAR [],
description VARCHAR [],
FOREIGN KEY (user) REFERENCES table1 table1 (user_id) 
)

1 个答案:

答案 0 :(得分:0)

我想你想要

insert into table2 (id, user, name, description)
   select uuid_generate_v1(),  -- or whichever generation function you prefer
          user_id, array_agg(name order by id), array_agg(description order by id)
   from table1
   group by user_id;

请注意order by子句,以便名称和描述在数组中的顺序相同。