Postgres heeft geen equivalent geïmplementeerd voor INSERT OR REPLACE
. Van de ON CONFLICT
docs (nadruk van mij):
Het kan ofwel DO NOTHING zijn, ofwel een DO UPDATE-clausule die de exacte details specificeert. van de UPDATE-actie die moet worden uitgevoerd in geval van een conflict.
Hoewel het u geen afkorting geeft voor vervanging, ON CONFLICT DO UPDATE
is meer in het algemeen van toepassing, omdat u hiermee nieuwe waarden kunt instellen op basis van reeds bestaande gegevens. Bijvoorbeeld:
INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;