W PostgreSQL 9.5 jest to teraz natywna funkcjonalność (jak MySQL miał od kilku lat):
WSTAW ... W KONFLIKCIE NIC / AKTUALIZUJ („UPSERT”)
9.5 zapewnia obsługę operacji „UPSERT”. INSERT został rozszerzony o akceptację klauzuli ON CONFLICT DO UPDATE/IGNORE. Ta klauzula określa alternatywne działanie, które należy podjąć w przypadku potencjalnego podwójnego naruszenia.
...
Dalszy przykład nowej składni:
INSERT INTO user_logins (username, logins)
VALUES ('Naomi',1),('James',1)
ON CONFLICT (username)
DO UPDATE SET logins = user_logins.logins + EXCLUDED.logins;