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