PostgreSQL:如何根据两个主键使用另一个表来UPSERT表?

时间:2018-03-19 20:40:46

标签: postgresql

我有一个包含两个主键的表first_namelast_name,还有大约10个其他列。我想使用另一个具有完全相同模式的表来更新它,但许多表具有要添加或更新到旧表的新值。什么是正确的SQL查询?

Here is a picture of what I am trying to do

我到目前为止的代码是:

UPDATE OLD_DATA AS old
SET val_1 = new.val_1 ,
    val_2 = new.val_2 ,
FROM NEW_DATA AS new
WHERE old.first_name = new.first_name
AND   old.last_name  = new.last_name 

但这不会添加新数据,只会更新旧数据。

1 个答案:

答案 0 :(得分:1)

Here是关于postgres更新的文档。

update old_data set val_1 = 5 and val_2 = 1
where first_name = 'donald' and last_name = 'duck'

对每行执行相同操作。