【问题标题】:How to insert data from one table to another in array format?如何以数组格式将数据从一个表插入到另一个表?
【发布时间】:2019-07-06 13:35:01
【问题描述】:

我正在设置两个 Postgres 表表 1 和表 2。

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

现在我想将数据从 table1 插入到 table2 的名称和描述数组中。 table1 中具有相同 user_id 的所有条目在 table2 中应该有一个用户与 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) 
)

【问题讨论】:

    标签: sql postgresql insert


    【解决方案1】:

    我想你想要:

    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 子句,因此名称和描述在数组中的顺序相同。

    【讨论】:

      猜你喜欢
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2017-03-05
      • 2015-10-08
      • 1970-01-01
      相关资源
      最近更新 更多