-
Quando uma função que retorna o tipo trigger é executada, o PostgreSQL cria algumas variáveis especiais na memória. Essas variáveis podem ser usadas no corpo das nossas funções. Na função acima estamos usando uma dessas variáveis, a TG_OP que retorna a operação que foi realizada (insert, update ou delete).
https://www.devmedia.com.br/trigger-no-postgresql/7032
-
TG_NAME
Nome do tipo de dados; variável que contém o nome do gatilho disparado.
TG_WHEN
Texto do tipo de dados; uma cadeia de ANTES, DEPOIS ou INSÉDIO DE, dependendo da definição do acionador.
TG_LEVEL
Texto do tipo de dados; uma string de ROW ou STATEMENT, dependendo da definição do trigger.
TG_OP
Texto do tipo de dados; uma sequência de instruções INSERT, UPDATE, DELETE ou TRUNCATE para qual operação o acionador foi disparado.
TG_RELID
Tipo de dados oid; o ID do objeto da tabela que causou a invocação do acionador.
TG_RELNAME
Nome do tipo de dados; o nome da tabela que causou a invocação do acionador. Isso agora está obsoleto e pode desaparecer em uma versão futura. Use TG_TABLE_NAME em seu lugar.
TG_TABLE_NAME
Nome do tipo de dados; o nome da tabela que causou a invocação do acionador.
TG_TABLE_SCHEMA
Nome do tipo de dados; o nome do esquema da tabela que causou a invocação do acionador.
TG_NARGS
Tipo de dados inteiro; o número de argumentos fornecidos ao procedimento de acionamento na instrução CREATE TRIGGER.
TG_ARGV []
Matriz de tipos de dados de texto; os argumentos da instrução CREATE TRIGGER. O índice conta a partir de 0. Índices inválidos (menor que 0 ou maior que ou igual a tg_nargs) resultam em um valor nulo.
https://www.postgresql.org/docs/9.6/static/plpgsql-trigger.html
-
De fato, TG_OP é uma variável do tipo texto que pode ser preenchida com os valores INSERT, UPDATE, DELETE ou TRUNCATE que identificam quais operações irão disparar o TRIGGER. Vejamos alguns exemplos:
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
FOR EACH ROW EXECUTE PROCEDURE emp_stamp();
CREATE TRIGGER emp_audit
AFTER INSERT OR UPDATE OR DELETE ON emp
FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();
https://www.estrategiaconcursos.com.br/blog/prova-da-semana-comentario-da-prova-do-stm-analista-de-sistemas-banco-de-dados-bi-e-bpm/
-
Nem que trabalha com isso, sabe essas variáveis de cabeça...