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

¿Cómo emular insertar ignorar y actualizar la clave duplicada (combinar sql) con postgresql?

Con PostgreSQL 9.5, esta es ahora una funcionalidad nativa (como la que ha tenido MySQL durante varios años):

INSERTAR... EN CONFLICTO NO HACER NADA/ACTUALIZAR ("UPSERT")

9.5 brinda soporte para operaciones "UPSERT". INSERT se amplía para aceptar una cláusula ON CONFLICT DO UPDATE/IGNORE. Esta cláusula especifica una acción alternativa a tomar en caso de una posible infracción duplicada.

...

Otro ejemplo de nueva sintaxis:

INSERT INTO user_logins (username, logins)
VALUES ('Naomi',1),('James',1) 
ON CONFLICT (username)
DO UPDATE SET logins = user_logins.logins + EXCLUDED.logins;