PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

jOOQ inserir em .. onde não existe para Postgres


Se você deseja reutilizar um parâmetro nomeado no jOOQ, o ideal é criar o elemento AST fora da consulta, assim:
// Assuming a static import
import static org.jooq.impl.DSL.*;

Param<Integer> myId = param("myId", Integer.class);

Você pode usá-lo várias vezes em sua consulta:
using(configuration)
  .insertInto(MY_TABLE, MY_TABLE.MY_ID, MY_TABLE.COL1, MY_TABLE.COL2)
  .select(
     select(
        myId, 
        param("firstCol", MY_TABLE.COL1.getType()),
        param("secondCol", MY_TABLE.COL2.getType())
     )
     .whereNotExists(
        selectOne()
        .from(MY_TABLE)
        .where(MY_TABLE.MY_ID.eq(myId))
     )
  );