44.5. Trigger Functions#
When a function is used as a trigger, the dictionaryTD
contains trigger-related values:
TD["event"]
contains the event as a string:
INSERT
,UPDATE
,DELETE
, orTRUNCATE
.TD["when"]
contains one of
BEFORE
,AFTER
, orINSTEAD OF
.TD["level"]
contains
ROW
orSTATEMENT
.TD["new"]
TD["old"]
For a row-level trigger, one or both of these fields contain the respective trigger rows, depending on the trigger event.
TD["name"]
contains the trigger name.
TD["table_name"]
contains the name of the table on which the trigger occurred.
TD["table_schema"]
contains the schema of the table on which the trigger occurred.
TD["relid"]
contains the OID of the table on which the trigger occurred.
TD["args"]
If the
CREATE TRIGGER
command included arguments, they are available inTD["args"][0]
toTD["args"][
.n
-1]
IfTD["when"]
isBEFORE
orINSTEAD OF
andTD["level"]
isROW
, you can returnNone
or"OK"
from the Python function to indicate the row is unmodified,"SKIP"
to abort the event, or ifTD["event"]
isINSERT
orUPDATE
you can return"MODIFY"
to indicate you've modified the new row. Otherwise the return value is ignored.