sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL INSERT ON CONFLICT UPDATE (upsert) použijte všechny vyloučené hodnoty

Postgres neimplementoval ekvivalent INSERT OR REPLACE . Z ON CONFLICT docs (důraz můj):

Může to být buď DO NOTHING, nebo DO UPDATE klauzule specifikující přesné podrobnosti akce UPDATE, která se má provést v případě konfliktu.

Ačkoli vám neposkytne zkratku pro výměnu, ON CONFLICT DO UPDATE platí obecněji, protože umožňuje nastavit nové hodnoty na základě již existujících dat. Například:

INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;



  1. Android ListView pomocí SQLite

  2. Jaká je maximální velikost VARCHAR2 v PL/SQL a SQL?

  3. Aktivní relace a stav SQL serveru

  4. MySQL:Nejrychlejší způsob, jak spočítat počet řádků