PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

jOOQ einfügen in .. wo nicht für Postgres existiert

Wenn Sie einen benannten Parameter in jOOQ wiederverwenden möchten, erstellen Sie das AST-Element idealerweise außerhalb der Abfrage als solches:

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

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

Sie können es dann mehrfach in Ihrer Abfrage verwenden:

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))
     )
  );