EnterpriseDB supports both
row-level and
statement-leveltriggers. A row-level trigger
fires once for each row that is affected by a triggering event.
For example, if deletion is defined as a triggering event on a table
and a single DELETE command is issued that deletes
five rows from the table, then the trigger will fire five times,
once for each row.
In contrast, a statement-level trigger fires once per triggering
statement regardless of the number of rows affected by the
triggering event. In the prior example of a single
DELETE command deleting five rows, a
statement-level trigger would fire only once.
The sequence of actions can be defined regarding whether the
trigger code block is executed before or after the triggering
statement, itself, in the case of statement-level triggers; or
before or after each row is affected by the triggering statement
in the case of row-level triggers.
In a before row-level trigger, the trigger
code block is executed before the triggering action is carried
out on each affected row. In a before
statement-level trigger, the trigger code block is executed
before the action of the triggering statement is carried out.
In an after row-level trigger, the
trigger code block is executed after the triggering action is
carried out on each affected row. In an
after statement-level trigger, the trigger
code block is executed after the action of the triggering
statement is carried out.