我正在寻找更新apr
只有当它不同时,现在看起来它更新,无论它是不同的还是相同的:
INSERT INTO live_mytable (id, loan_type, apr, term, oldestyear)
SELECT id, loan_type, apr, term, oldestyear
FROM imp_mytable
ON CONFLICT (id,loan_type,term,oldestyear) DO update
set apr = excluded.apr;
如果值不同,如何将此查询更改为仅更新?
您可以在更新时使用WHERE
子句:
INSERT INTO live_mytable (id, loan_type, apr, term, oldestyear)
SELECT id, loan_type, apr, term, oldestyear
FROM imp_mytable
ON CONFLICT (id,loan_type,term,oldestyear)
DO update
set apr = excluded.apr
WHERE
live_mytable.apr IS DISTINCT FROM
EXCLUDED.apr;