September 25, 2025: PostgreSQL 18 Released!
Supported Versions: Current (18) / 17 / 16 / 15 / 14 / 13
Development Versions: devel
Unsupported versions: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.
PostgreSQL 8.4.22 Documentation
Prev Fast Backward Chapter 41. PL/Python - Python Procedural Language Fast Forward Next

41.2. 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, TRUNCATE, or UNKNOWN). TD["when"] contains one of BEFORE, AFTER, or UNKNOWN. TD["level"] contains one of ROW, STATEMENT, or UNKNOWN. For a row-level trigger, the trigger rows are in TD["new"] and/or TD["old"] 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, 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 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 "MODIFY" to indicate you've modified the row. Otherwise the return value is ignored.


Prev Home Next
PL/Python Functions Up Database Access

AltStyle によって変換されたページ (->オリジナル) /