sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL INSERT ON CONFLICT UPDATE (upsert) brug alle ekskluderede værdier

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;



  1. Hvordan viser jeg alle tabeller i et skema i Oracle SQL?

  2. videregive heltalsarray til oracle-procedure med c#

  3. Dialekt skal udtrykkeligt angives fra v4.0.0

  4. MySQL-udløser ved Indsæt/Opdater begivenheder