PostgreSQL:如何使用基于两个主键的另一个表来升级表?

PostgreSQL:如何使用基于两个主键的另一个表来升级表?,postgresql,Postgresql,我有一个表,它有两个主键,first\u name和last\u name,还有大约10个其他列。我想使用另一个表来更新它,该表具有完全相同的模式,但许多表有新值要添加或更新到旧表中。什么是正确的SQL查询 到目前为止,我掌握的代码是: 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

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

到目前为止,我掌握的代码是:

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 
但这不会添加新数据,只会更新旧数据

是关于postgres更新的文档

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

对每行执行相同的操作

您不想指定要更新的列吗?不,我希望它更新所有列。请阅读并接受答案