# mergeFrom

inline fun <D : Table, S : Table> D.mergeFrom(source: S, on: SqlExpressionBuilder.() -> Op<Boolean>, crossinline body: MergeTableStatement.() -> Unit): MergeTableStatement

Performs an SQL MERGE operation to insert, update, or delete records in the target table based on a comparison with a source table.

#### Return

A MergeTableStatement which represents the MERGE operation with the configured actions.

#### Parameters

D

The target table type extending from Table.

S

The source table type extending from Table.

source

An instance of the source table.

on

A lambda function with SqlExpressionBuilder as its receiver that should return a Op condition. This condition is used to match records between the source and target tables.

body

A lambda where MergeTableStatement can be configured with specific actions to perform when records are matched or not matched.

inline fun <D : Table, S : Table> D.mergeFrom(source: S, crossinline body: MergeTableStatement.() -> Unit): MergeTableStatement

Performs an SQL MERGE operation to insert, update, or delete records in the target table based on a comparison with a source table.

#### Return

A MergeTableStatement which represents the MERGE operation with the configured actions.

#### Parameters

D

The target table type extending from Table.

S

The source table type extending from Table.

source

An instance of the source table.

body

A lambda where MergeTableStatement can be configured with specific actions to perform when records are matched or not matched.

inline fun <T : Table> T.mergeFrom(selectQuery: QueryAlias, on: SqlExpressionBuilder.() -> Op<Boolean>, crossinline body: MergeSelectStatement.() -> Unit): MergeSelectStatement

Performs an SQL MERGE operation to insert, update, or delete records in the target table based on a comparison with a select query source.

#### Return

A MergeSelectStatement which represents the MERGE operation with the configured actions.

#### Parameters

T

The target table type extending from Table.

selectQuery

represents the aliased query for a complex subquery to be used as the source.

on

A lambda with a receiver of type SqlExpressionBuilder that returns a condition Op used to match records between the source query and the target table.

body

A lambda where MergeSelectStatement can be configured with specific actions to perform when records are matched or not matched.

@JvmName(name = "mergeFromNullableParam")
fun <D : Table, S : Table> D.mergeFrom(source: S, on: SqlExpressionBuilder.() -> Op<Boolean>? = null, body: MergeTableStatement.() -> Unit): MergeTableStatement

### Deprecated

This `mergeFrom()` with a nullable `on` parameter will be removed in future releases. Please leave a comment on [YouTrack](https://youtrack.jetbrains.com/issue/EXPOSED-494/Inline-DSL-statement-and-query-functions) with a use-case if a nullable condition cannot be replaced with the new `mergeFrom()` overloads.

#### Replace with

    mergeFrom(source) { body.invoke() }

Content copied to clipboard