Module

x/kysely_postgrs_js_dialect/mod.ts>kysely.MergeQueryBuilder

Kysely dialect for PostgreSQL using the Postgres.js client.
Latest
class kysely.MergeQueryBuilder
import { kysely } from "https://dotland.deno.dev/x/kysely_postgrs_js_dialect@v0.27.4/mod.ts";
const { MergeQueryBuilder } = kysely;

Constructors

new
MergeQueryBuilder(props: MergeQueryBuilderProps)

Type Parameters

DB
TT extends keyof DB
O

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>>(
sourceTable: TE,
k1: K1,
k2: K2,
): ExtractWheneableMergeQueryBuilder<DB, TT, TE, O>

Adds the using clause to the query.

This method is similar to {@link 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>
import kysely.MergeQueryBuilder
import { kysely } from "https://dotland.deno.dev/x/kysely_postgrs_js_dialect@v0.27.4/mod.ts";
const { MergeQueryBuilder } = kysely;