import { kysely } from "https://deno.land/x/kysely_postgrs_js_dialect@v0.27.4/deps.ts";
const { MergeQueryBuilder } = kysely;
Constructors
new
MergeQueryBuilder(props: MergeQueryBuilderProps)Methods
top(expression: number | bigint, modifiers?: "percent"): MergeQueryBuilder<DB, TT, O>
Changes a merge into
query to an merge top into
query.
top
clause is only supported by some dialects like MS SQL Server.
Examples
Affect 5 matched rows at most:
await db.mergeInto('person')
.top(5)
.using('pet', 'person.id', 'pet.owner_id')
.whenMatched()
.thenDelete()
.execute()
The generated SQL (MS SQL Server):
merge top(5) into "person"
using "pet" on "person"."id" = "pet"."owner_id"
when matched then
delete
Affect 50% of matched rows:
await db.mergeInto('person')
.top(50, 'percent')
.using('pet', 'person.id', 'pet.owner_id')
.whenMatched()
.thenDelete()
.execute()
The generated SQL (MS SQL Server):
merge top(50) percent into "person"
using "pet" on "person"."id" = "pet"."owner_id"
when matched then
delete
using<TE extends TableExpression<DB, TT>, K1 extends JoinReferenceExpression<DB, TT, TE>, K2 extends JoinReferenceExpression<DB, TT, TE>>(): ExtractWheneableMergeQueryBuilder<DB, TT, TE, O>
sourceTable: TE,
k1: K1,
k2: K2,
Adds the using
clause to the query.
This method is similar to SelectQueryBuilder.innerJoin, so see the documentation for that method for more examples.
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
using<TE extends TableExpression<DB, TT>, FN extends JoinCallbackExpression<DB, TT, TE>>(sourceTable: TE, callback: FN): ExtractWheneableMergeQueryBuilder<DB, TT, TE, O>