Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

MergeQueryBuilder

class MergeQueryBuilder<DB, TT extends keyof DB, O> {
constructor(props: MergeQueryBuilderProps);
top(expression: number | bigint, modifiers?: "percent"): MergeQueryBuilder<DB, TT, O>;
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>;
using<TE extends TableExpression<DB, TT>, FN extends JoinCallbackExpression<DB, TT, TE>>(sourceTable: TE, callback: FN): ExtractWheneableMergeQueryBuilder<DB, TT, TE, O>;
}

§Type Parameters

§
TT extends keyof DB
[src]

§Constructors

§
new MergeQueryBuilder(props: MergeQueryBuilderProps)
[src]

§Methods

§
top(expression: number | bigint, modifiers?: "percent"): MergeQueryBuilder<DB, TT, O>
[src]

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>
[src]

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>
[src]