sql >> Base de Datos >  >> RDS >> PostgreSQL

Upsert dinámico en postgresql

Como enfoque alternativo, puede hacer un upsert sin una función mediante el uso de una inserción + actualización con cláusulas where para que solo tengan éxito en el caso correcto. Por ejemplo

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

Lo que evitaría tener muchas funciones personalizadas específicas de postgres.