在另一个列表中插入列数据行(all),其中每一行与公共ID匹配

时间:2017-05-02 12:06:50

标签: sql postgresql insert

Table1                                      Table2
column1ID | column1                 column2ID |    column2
     1    |   A                          1    |    copyofA
     2    |   B                          2    |    copyofB

根据要求,我想在table2中插入copyofB的copyofB等行(大约54k行),但是column2ID必须匹配已经填充的column1ID。

根据标题我想在另一个列表中插入列数据行(所有这些行),其中每一行与公共ID列值匹配

我使用了通常的命令

INSERT INTO table2 (column2)
SELECT column1
FROM table1

但遗憾的是,具有ID值的列似乎需要进行某种比较才能获得成功

输出错误

[Err] ERROR:  insert or update on table "table2" violates foreign key constraint "table2_column2ID_fkey"
DETAIL:  Key (column2ID)=(400992) is not present in table "table2".

最后要添加的是table2显然有一个外键附加到table1的主键ID

1 个答案:

答案 0 :(得分:1)

我想你想要一个update

update table2 t2
    set column2 = t1.column1
    from table1 t1
    where t2.id = t1.id