Así que estoy viniendo de MySQL en el que podía hacer INSERT on DUPLICATE UPDATE:sintaxis de MERGE utilizado para upsert o INSERTAR ACTUALIZACIÓN duplicado
INSERT INTO table (a,b,c)
VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
Pero ahora estoy usando PostgreSQL y hay esfuerzos para añadir la funcionalidad UPSERT, parece que MERGE podría funcionar para lo que me gustaría, pero quería ver si esta es la sintaxis más óptima. Example Syntax 1, I've also seen this but don't understand how to implement. No he intentado esto todavía porque pensé que MERGE se usó para fusionar datos de la tabla 1 a la tabla 2 o ¿algo así funcionaría?
MERGE
INTO table
USING table
ON c = 1
WHEN MATCHED THEN
UPDATE
SET c=c+1
WHEN NOT MATCHED THEN
INSERT (a,b,c)
VALUES (1,2,3)
¿Alguna otra sugerencia?
¿En qué versión de Postgres es compatible? –
MERGE está en Todo para 9.1 http://wiki.postgresql.org/wiki/Todo –
hay una gema de rubí para esto: ['Upsert'] (https://github.com/seamusabshere/upsert) –