40.2. Trigger Functions

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.