MatchedThenableMergeQueryBuilder
§Type Parameters
§Constructors
§Methods
Performs the delete
action.
To perform the do nothing
action, see {@link thenDoNothing}.
To perform the update
action, see {@link thenUpdate} or {@link thenUpdateSet}.
Examples
const result = await db.mergeInto('person')
.using('pet', 'person.id', 'pet.owner_id')
.whenMatched()
.thenDelete()
.execute()
The generated SQL (PostgreSQL):
merge into "person"
using "pet" on "person"."id" = "pet"."owner_id"
when matched then
delete
Performs the do nothing
action.
This is supported in PostgreSQL.
To perform the delete
action, see {@link thenDelete}.
To perform the update
action, see {@link thenUpdate} or {@link thenUpdateSet}.
Examples
const result = await db.mergeInto('person')
.using('pet', 'person.id', 'pet.owner_id')
.whenMatched()
.thenDoNothing()
.execute()
The generated SQL (PostgreSQL):
merge into "person"
using "pet" on "person"."id" = "pet"."owner_id"
when matched then
do nothing
Perform an update
operation with a full-fledged UpdateQueryBuilder.
This is handy when multiple set
invocations are needed.
For a shorthand version of this method, see {@link thenUpdateSet}.
To perform the delete
action, see {@link thenDelete}.
To perform the do nothing
action, see {@link thenDoNothing}.
Examples
import { sql } from 'kysely'
const result = await db.mergeInto('person')
.using('pet', 'person.id', 'pet.owner_id')
.whenMatched()
.thenUpdate((ub) => ub
.set(sql`metadata['has_pets']`, 'Y')
.set({
updated_at: Date.now(),
})
)
.execute()
The generated SQL (PostgreSQL):
merge into "person"
using "pet" on "person"."id" = "pet"."owner_id"
when matched then
update set metadata['has_pets'] = $1, "updated_at" = $2
Performs an update set
action, similar to UpdateQueryBuilder.set.
For a full-fledged update query builder, see {@link thenUpdate}.
To perform the delete
action, see {@link thenDelete}.
To perform the do nothing
action, see {@link thenDoNothing}.
Examples
const result = await db.mergeInto('person')
.using('pet', 'person.id', 'pet.owner_id')
.whenMatched()
.thenUpdateSet({
middle_name: 'dog owner',
})
.execute()
The generate SQL (PostgreSQL):
merge into "person"
using "pet" on "person"."id" = "pet"."owner_id"
when matched then
update set "middle_name" = $1