也许您可以通过使用简单的查询来获得想要的结果。假设您要插入或更新的表是这样的
TABLE original
id integer,
value char(100)
首先,您可以使用新值创建一个临时表(可以使用SELECT INTO或其他方式创建表)
TABLE temp
id integer,
value char(100)
现在,您需要做两件事,更新原始行,然后插入新值
UPDATE original
SET original.value = temp.value
FROM original, temp
WHERE original.id = temp.id
INSERT INTO original
SELECT * from temp
WHERE temp.id not IN (select o.id from original o)