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

Dynamisches Upsert in postgresql

Als alternativen Ansatz können Sie ein Upsert ohne ausführen eine Funktion, indem Sie ein insert + update mit where-Klauseln verwenden, damit sie nur im richtigen Fall erfolgreich sind. Z. B.

update mytable set col1='value1' where (col2 = 'myId');
insert into mytable select 'value1', 'myId' where not exists (select 1 from mytable where col2='myId');

Was viele benutzerdefinierte postgres-spezifische Funktionen vermeiden würde.