Выберите с помощью набора предопределенных значений в JOOQ для PostgreSQL

1

Кто-нибудь знает, можно ли записать в JOOQ select с набором предопределенных значений? Мне нужно это для вставки, если не существует. Например,

INSERT INTO test
    (text)
    SELECT '1234567890123456789'
    WHERE
        NOT EXISTS (
            SELECT id FROM test WHERE text = '1234567890123456789'
        );
Теги:
select
jooq

1 ответ

0

Я нашел ответ один:

List<Param<?>> params = new LinkedList<>();
params.add(DSL.val("1234567890123456789"));

List<Field<?>> fields = new LinkedList<>();
fields.add(TEST.TEXT);

SelectConditionStep<Record1<TEXT>> notExistsSelect = context.select(TEST.TEXT).from(TEST).where(TEST.TEXT.eq("1234567890123456789"));
SelectConditionStep<Record> insertIntoSelect = context.select(params).whereNotExists(notExistsSelect);

context.insertInto(TEST, fields).select(insertIntoSelect).execute();

Но было бы здорово, если бы у нас была возможность сделать это через InsertQuery. Я не нашел способ сделать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню