PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

UPSERT in PostgreSQL usando jOOQ

jOOQ 3.7+ supporta ON CONFLICT di PostgreSQL 9.5 clausola:

La sintassi completa specifica del fornitore di PostgreSQL non è ancora supportata, ma puoi usare la sintassi MySQL o H2, che possono essere entrambe emulate usando ON CONFLICT di 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();