From: Tom Lane Date: Wed, 1 Sep 2021 21:24:59 +0000 (-0400) Subject: Doc: clarify how triggers relate to transactions. X-Git-Tag: REL_14_RC1~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=95bc40f880a68dc092ca34c4813f2b27962f233d;p=thirdparty%2Fpostgresql.git 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 --- 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 name + + trigger + constraint trigger + When the CONSTRAINT option is specified, this command creates a constraint trigger. 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. + + The execution of an AFTER trigger can be deferred + to the end of the transaction, rather than the end of the statement, + if it was defined as a constraint trigger. + 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. + + A statement that targets a parent table in an inheritance or partitioning hierarchy does not cause the statement-level triggers of affected child