sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL INSERT ON CONFLICT UPDATE (upsert) gebruik alle uitgesloten waarden

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;



  1. Opslaggroottes voor MySQL TEXT-gegevenstypen begrijpen

  2. Query's loggen in PostgreSQL

  3. Hoe TO_BASE64() werkt in MariaDB

  4. `toon tabel aanmaken` equivalent in oracle sql