import { kysely } from "https://deno.land/x/kysely_postgrs_js_dialect@v0.27.4/deps.ts";
const { MatchedThenableMergeQueryBuilder } = kysely;
Constructors
Methods
Performs the delete
action.
To perform the do nothing
action, see thenDoNothing.
To perform the update
action, see thenUpdate or 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 thenDelete.
To perform the update
action, see thenUpdate or 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 thenUpdateSet.
To perform the delete
action, see thenDelete.
To perform the do nothing
action, see 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 thenUpdate.
To perform the delete
action, see thenDelete.
To perform the do nothing
action, see 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