44.5. Функции триггеров#

44.5. Функции триггеров

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