44.6. Триггерные функции
Когда функция используется как триггер, словарь TD содержит значения, связанные с работой триггера: 
- TD["event"]
- содержит название события в виде строки: - INSERT,- UPDATE,- DELETEили- TRUNCATE.
- TD["when"]
- содержит одну из строк: - BEFORE,- AFTERили- INSTEAD OF.
- TD["level"]
- содержит - ROWили- STATEMENT.
- TD["new"]- TD["old"]
- Для триггера уровня строки одно или оба этих поля содержат соответствующие строки триггера, в зависимости от события триггера. 
- TD["name"]
- содержит имя триггера. 
- TD["table_name"]
- содержит имя таблицы, для которой сработал триггер. 
- TD["table_schema"]
- содержит схему таблицы, для которой сработал триггер. 
- TD["relid"]
- содержит OID таблицы, для которой сработал триггер. 
- TD["args"]
- Если в команде - CREATE TRIGGERзадавались аргументы, их можно получить как элементы массива с- TD["args"][0]по- TD["args"][.- n-1]
Если в TD["when"] передано BEFORE или INSTEAD OF, а в TD["level"] — ROW, вы можете вернуть значение None или "OK" из функции Python, чтобы показать, что строка не была изменена, значение "SKIP", чтобы прервать событие, либо, если в TD["event"] передана команда INSERT или UPDATE, вы можете вернуть "MODIFY", чтобы показать, что новая строка была изменена. Во всех других случаях возвращаемое значение игнорируется.