When a function is used as a trigger, the dictionary
TD
contains trigger-related values. The trigger
rows are in TD["new"]
and/or TD["old"]
depending on the trigger event. TD["event"]
contains
the event as a string (INSERT
, UPDATE
,
DELETE
, or UNKNOWN
).
TD["when"]
contains one of BEFORE
,
AFTER
, and UNKNOWN
.
TD["level"]
contains one of ROW
,
STATEMENT
, and UNKNOWN
.
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["name"]
contains the trigger name, and
TD["relid"]
contains the OID of the table on
which the trigger occurred. If the CREATE TRIGGER
command
included arguments, they are available in TD["args"][0]
to
TD["args"][(
.
n
-1)]
If TD["when"]
is BEFORE
, you may
return None
or "OK"
from the
Python function to indicate the row is unmodified,
"SKIP"
to abort the event, or "MODIFY"
to
indicate you've modified the row.