Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 43. PL/Python — процедурный язык Python | След. |
43.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", чтобы показать, что новая строка была изменена. Во всех других случаях возвращаемое значение игнорируется.
Пред. | Начало | След. |
Анонимные блоки кода | Уровень выше | Обращение к базе данных |