postgres.git / summary / log / commit / refs

commit    95bc40f880a68dc092ca34c4813f2b27962f233d
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Wed Sep 01 21:24:59 2021 +0000

    Doc: clarify how triggers relate to transactions.
    
    Laurenz Albe, per gripe from Nathan Long.
    
    Discussion: https://postgr.es/m/161953360822.695.15805897835151971142@wrigleys.postgresql.org


doc/src/sgml/ref/create_trigger.sgml | 4 ++++ doc/src/sgml/trigger.sgml | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/doc/src/sgml/ref/create_trigger.sgml b/doc/src/sgml/ref/create_trigger.sgml index 3f4b5acc7b7..e4afa1c01d3 100644 --- a/doc/src/sgml/ref/create_trigger.sgml +++ b/doc/src/sgml/ref/create_trigger.sgml @@ -175,6 +175,10 @@ CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER <replaceable class="parameter">name </para> <para> + <indexterm> + <primary>trigger</primary> + <secondary>constraint trigger</secondary> + </indexterm> When the <literal>CONSTRAINT</literal> option is specified, this command creates a <firstterm>constraint trigger</firstterm>. This is the same as a regular trigger except that the timing of the trigger firing can be adjusted using diff --git a/doc/src/sgml/trigger.sgml b/doc/src/sgml/trigger.sgml index f1a845f7568..7e2654493bb 100644 --- a/doc/src/sgml/trigger.sgml +++ b/doc/src/sgml/trigger.sgml @@ -122,6 +122,15 @@ row in the view is identified as needing to be operated on. </para> + <para> + The execution of an <literal>AFTER</literal> trigger can be deferred + to the end of the transaction, rather than the end of the statement, + if it was defined as a <firstterm>constraint trigger</firstterm>. + In all cases, a trigger is executed as part of the same transaction as + the statement that triggered it, so if either the statement or the + trigger causes an error, the effects of both will be rolled back. + </para> + <para> A statement that targets a parent table in an inheritance or partitioning hierarchy does not cause the statement-level triggers of affected child [parent: 50ba70a957f9]