Postgres har ikke implementeret en ækvivalent til INSERT OR REPLACE
. Fra ON CONFLICT
docs (min fremhævelse):
Det kan enten være GØR INGENTING eller en DO UPDATE-klausul, der specificerer de nøjagtige detaljer af OPDATERING-handlingen, der skal udføres i tilfælde af en konflikt.
Selvom det ikke giver dig en forkortelse for erstatning, ON CONFLICT DO UPDATE
gælder mere generelt, da det lader dig indstille nye værdier baseret på allerede eksisterende data. For eksempel:
INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;