Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback
Module

x/kysely_postgrs_js_dialect/deps.ts>kysely.MatchedThenableMergeQueryBuilder

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

Constructors

new
MatchedThenableMergeQueryBuilder(props: MergeQueryBuilderProps)

Type Parameters

DB
TT extends keyof DB
ST extends keyof DB
UT extends TT | ST
O

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
thenUpdate<QB extends UpdateQueryBuilder<DB, TT, UT, never>>(set: (ub: QB) => QB): WheneableMergeQueryBuilder<DB, TT, ST, O>

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
thenUpdateSet<U extends UpdateObjectFactory<DB, UT, TT>>(update: U): WheneableMergeQueryBuilder<DB, TT, ST, O>
thenUpdateSet<RE extends ReferenceExpression<DB, TT>, VE extends ValueExpression<DB, UT, ExtractUpdateTypeFromReferenceExpression<DB, TT, RE>>>(key: RE, value: VE): WheneableMergeQueryBuilder<DB, TT, ST, O>