PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-Upserts mit mehreren Werten

Ein mehrwertiges Upsert ist definitiv möglich, und ein bedeutender Teil des Grundes, warum Insert ... bei Konflikt ... implementiert wurde.

CREATE TABLE table1(col1 int, col2 text, constraint theconstraint unique(col1));

INSERT INTO table1 VALUES (1, 'parrot'), (4, 'turkey');

INSERT INTO table1 VALUES (1, 'foo'), (2,'bar'), (3,'baz')
ON CONFLICT ON CONSTRAINT theconstraint
DO UPDATE SET col2 = EXCLUDED.col2;

Ergebnisse in

regress=> SELECT * FROM table1 ORDER BY col1;
 col1 | col2 
------+------
    1 | foo
    2 | bar
    3 | baz
    4 | turkey
(4 rows)

Wenn die Dokumentation unklar war, senden Sie bitte entsprechendes Feedback an die Mailingliste pgsql-general. Oder noch besser, schlagen Sie einen Patch für die Dokumentation vor.