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

jOOQ insertar en .. donde no existe para Postgres

Si desea reutilizar un parámetro con nombre en jOOQ, idealmente, cree el elemento AST fuera de la consulta, como tal:

// Assuming a static import
import static org.jooq.impl.DSL.*;

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

Luego puede usarlo varias veces en su 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))
     )
  );