MergeStatement

abstract class MergeStatement(val table: Table) : Statement<Int>

The base implementation of SQL merge command that is used by statements like MergeSelectStatement, MergeTableStatement

Inheritors

Constructors

Link copied to clipboard
constructor(table: Table)

Types

Link copied to clipboard
data class Clause(    val type: MergeStatement.ClauseCondition,     val action: MergeStatement.ClauseAction,     val arguments: List<Pair<Column<*>, Any?>>,     val and: Op<Boolean>?,     val deleteWhere: Op<Boolean>? = null,     val overridingSystemValue: Boolean = false,     val overridingUserValue: Boolean = false)
Link copied to clipboard

Properties

Link copied to clipboard

The destination Table where records will be merged into.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open override fun arguments(): Iterable<Iterable<Pair<IColumnType<*>, Any?>>>

Returns all mappings of columns and expression types to their values needed to prepare an SQL statement.

Link copied to clipboard
abstract fun prepareSQL(transaction: Transaction, prepared: Boolean = true): String

Returns the string representation of an SQL statement.

Link copied to clipboard
fun whenMatchedDelete(and: Op<Boolean>? = null)

Specifies a delete operation to be executed when a matching record is found in the destination table.

Link copied to clipboard
fun whenMatchedDoNothing(and: Op<Boolean>? = null)

Postgres only. Specifies that no operation should be performed when a matching record is found in the destination table.

Link copied to clipboard
fun whenMatchedUpdate(and: Op<Boolean>? = null, deleteWhere: Op<Boolean>? = null, body: (UpdateStatement) -> Unit)

Defines an update operation to be executed when a matching record is found in the destination table.

Link copied to clipboard

Postgres only. Specifies that no operation should be performed when no matching record is found in the destination table.

Link copied to clipboard
fun whenNotMatchedInsert(    and: Op<Boolean>? = null,     overridingUserValue: Boolean = false,     overridingSystemValue: Boolean = false,     body: (InsertStatement<Int>) -> Unit)

Defines an insert operation to be performed when there is no matching record in the destination table.