Module org.jooq
Package org.jooq

Interface Merge<R extends Record>

All Superinterfaces:
Attachable, AttachableQueryPart, AutoCloseable, Flow.Publisher<Integer>, Publisher<Integer>, org.reactivestreams.Publisher<Integer>, Query, QueryPart, RowCountQuery, Serializable, Statement
All Known Subinterfaces:
MergeFinalStep<R>, MergeMatchedDeleteStep<R>, MergeMatchedSetMoreStep<R>, MergeMatchedStep<R>, MergeMatchedWhereStep<R>, MergeNotMatchedSetMoreStep<R>, MergeNotMatchedStep<R>, MergeNotMatchedWhereStep<R>, MergeOnConditionStep<R>

public interface Merge<R extends Record> extends RowCountQuery
A MERGE statement.

Example:

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

 using(configuration)
    .mergeInto(CUSTOMER)
    .using(selectFrom(CUSTOMER_IMPORT))
    .on(CUSTOMER.ID.eq(CUSTOMER_IMPORT.ID))
    .whenMatchedThenUpdate()
    .set(CUSTOMER.FIRST_NAME, CUSTOMER_IMPORT.FIRST_NAME)
    .set(CUSTOMER.LAST_NAME, CUSTOMER_IMPORT.LAST_NAME)
    .whenNotMatchedThenInsert(CUSTOMER.FIRST_NAME, CUSTOMER.LAST_NAME)
    .values(CUSTOMER_IMPORT.FIRST_NAME, CUSTOMER_IMPORT.LAST_NAME)
    .execute();
 

Instances can be created using DSL.mergeInto(Table) and overloads.

Author:
Lukas Eder