Existe uma maneira de obter o nome da função/procedimento, que contém a consulta, que causou a TRIGGER
ativação de um?
Por exemplo, eu tenho uma função update_user_whatever
e ela atualiza os dados do usuário e quero registrar as atualizações na tabela do usuário com o conhecimento de qual função a causou (e de preferência com seus argumentos).
-- exemplo ilustrativo não testado:
CREATE FUNCTION update_user_whatever(param int) RETURNS user AS $$
UPDATE user_table SET attr=$1 RETURNING *
$$ LANGUAGE SQL;
Agora o gatilho que é executado UPDATE
ao executar esta função pode acessar o nome na função? (neste caso update_user_whatever
)
Ou esta é uma maneira errada de olhar para o problema e uma abordagem diferente deve ser escolhida?
Você não pode obter diretamente o nome da função que contém a instrução que causou a modificação de dados que disparou o gatilho, mas pode obter a instrução atualmente executada conforme recebida do cliente:
(Consulte a documentação .) No seu caso, esta deve ser a instrução que contém a chamada de função, para que você possa registrar pelo menos essa instrução.