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