43.5. Функции триггеров#
43.5. Функции триггеров #
Когда функция используется в качестве триггера, словарь 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", чтобы указать, что вы изменили новую строку.
В противном случае возвращаемое значение игнорируется.