PostgreSQL
46.6. Trigger Functions
When a function is used as a trigger, the dictionary TD
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
. [.term]#TD["new"]
- [.term]
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]`.
If TD["when"]
is BEFORE
or INSTEAD OF
and TD["level"]
is ROW
, you can return None
or "OK"
from the Python function to indicate the row is unmodified, "SKIP"
to abort the event, or if TD["event"]
is INSERT
or UPDATE
you can return "MODIFY"
to indicate you’ve modified the new row. Otherwise the return value is ignored.
Prev | Up | Next |
---|---|---|
46.5. Anonymous Code Blocks |
46.7. Database Access |
Submit correction
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.
Copyright © 1996-2023 The PostgreSQL Global Development Group