Skip to content

monolayer / schema / TriggerOptions

Type Alias: TriggerOptions<T>

TriggerOptions<T>: object

Type Parameters

Type Parameter
T extends string | undefined

Type declaration

columns?

optional columns: T[]

Target columns for update of events.

condition?

optional condition: RawBuilder<string>

A Boolean expression that determines whether the trigger function will actually be executed.

events?

optional events: ("insert" | "update" | "delete" | "truncate" | "update of")[]

The event that will fire the trigger. Multiple events can be specified.

  • insert: the trigger is fired on insert events.
  • update: the trigger is fired on update events.
  • delete: the trigger is fired on delete events.
  • truncate: the trigger is fired on truncate events.
  • update of: the trigger is fired on update events that affect the specified columns.

For update of events, you need to specify a list of columns in the columns property. The trigger will only fire if at least one of the listed columns is mentioned as a target of the update or if one of the listed columns is a generated column that depends on a column that is the target of the update.

fireWhen

fireWhen: "before" | "after" | "instead of"

Controls when the trigger function is called.

  • before: The function is called before the event.
  • after: The function is called after the event.
  • instead of: The function is called instead of the event.

forEach

forEach: "row" | "statement"

Controls whether the trigger function should be fired once for every row affected by the trigger event, or just once per SQL statement.

function

function: object

Function which is executed when the trigger fires. Options:

  • name: The name of the function.
  • args: Arguments to pass to the function.

function.args?

optional args: (string | RawBuilder<unknown>)[]

List of arguments to pass to the function. When referencing columns, use the sql helper.

function.name

name: string

The name of the function.

referencingNewTableAs?

optional referencingNewTableAs: string

Relation name that the trigger can use to access the after-image transition relation (row sets that include all of the rows inserted, deleted, or modified by the current SQL statement).

Allows triggers to see a global view of what the statement did, not just one row at a time.

referencingOldTableAs?

optional referencingOldTableAs: string

Relation name that the trigger can use to access the before-image transition relation (row sets that include all of the rows inserted, deleted, or modified by the current SQL statement).

Allows triggers to see a global view of what the statement did, not just one row at a time.