44.5. Funções de gatilho #

Quando uma função é usada como gatilho, o dicionário TD contém valores relacionados ao gatilho:

TD["event"]

contém o evento como uma cadeia de caracteres: INSERT, UPDATE, DELETE ou TRUNCATE.

TD["when"]

contém a cadeia de caracteres BEFORE, AFTER ou INSTEAD OF.

TD["level"]

contém a cadeia de caracteres ROW ou STATEMENT.

TD["new"]
TD["old"]

Para um gatilho no nível de linha, um ou os dois campos contêm as respectivas linhas do gatilho, dependendo do evento do gatilho.

TD["name"]

contém o nome do gatilho.

TD["table_name"]

contém o nome da tabela para a qual o gatilho foi disparado.

TD["table_schema"]

contém o esquema da tabela para a qual o gatilho foi disparado.

TD["relid"]

contém o OID da tabela para a qual o gatilho foi disparado.

TD["args"]

Se o comando CREATE TRIGGER incluir argumentos, eles estarão disponíveis em TD["args"][0] a TD["args"][n-1].

Se TD["when"] for BEFORE ou INSTEAD OF, e TD["level"] for ROW, poderá ser retornado None ou "OK" pela função Python para indicar que a linha não foi modificada, "SKIP" para interromper o evento, ou se TD["event"] for INSERT ou UPDATE, poderá ser retornado "MODIFY" para indicar que a linha foi modificada. Caso contrário, o valor retornado será ignorado.