Interface Merge<R extends Record>

All Superinterfaces:
Attachable, AttachableQueryPart, DMLQuery<R>, 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 DMLQuery<R>
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