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