diff options
Diffstat (limited to 'doc/src/sgml/trigger.sgml')
-rw-r--r-- | doc/src/sgml/trigger.sgml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml index 7e2654493bb..04e702a7956 100644 --- a/doc/src/sgml/trigger.sgml +++ b/doc/src/sgml/trigger.sgml @@ -193,6 +193,28 @@ </para> <para> + No separate triggers are defined for <command>MERGE</command>. Instead, + statement-level or row-level <command>UPDATE</command>, + <command>DELETE</command>, and <command>INSERT</command> triggers are fired + depending on (for statement-level triggers) what actions are specified in + the <command>MERGE</command> query and (for row-level triggers) what + actions are performed. + </para> + + <para> + While running a <command>MERGE</command> command, statement-level + <literal>BEFORE</literal> and <literal>AFTER</literal> triggers are + fired for events specified in the actions of the <command>MERGE</command> + command, irrespective of whether or not the action is ultimately performed. + This is the same as an <command>UPDATE</command> statement that updates + no rows, yet statement-level triggers are fired. + The row-level triggers are fired only when a row is actually updated, + inserted or deleted. So it's perfectly legal that while statement-level + triggers are fired for certain types of action, no row-level triggers + are fired for the same kind of action. + </para> + + <para> Trigger functions invoked by per-statement triggers should always return <symbol>NULL</symbol>. Trigger functions invoked by per-row triggers can return a table row (a value of |