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

UPSERT en PostgreSQL usando jOOQ

jOOQ 3.7+ es compatible con ON CONFLICT de PostgreSQL 9.5 cláusula:

La sintaxis completa específica del proveedor de PostgreSQL aún no es compatible, pero puede usar la sintaxis de MySQL o H2, que pueden emularse usando ON CONFLICT de PostgreSQL :

MySQL INSERT .. ON DUPLICATE KEY UPDATE :

DSL.using(configuration)
   .insertInto(TABLE)
   .columns(ID, A, B)
   .values(1, "a", "b")
   .onDuplicateKeyUpdate()
   .set(A, "a")
   .set(B, "b")
   .execute();

H2 MERGE INTO ..

DSL.using(configuration)
   .mergeInto(TABLE, A, B, C)
   .values(1, "a", "b")
   .execute();