PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Auditoria dinâmica de dados com trigger PostgreSQL


Você não mencionou sua versão do PostgreSQL, que é muito importante ao escrever respostas para perguntas como esta.

Se você estiver executando o PostgreSQL 9.0 ou mais recente (ou capaz de atualizar), poderá usar esta abordagem conforme documentado por Pavel:

http://okbob.blogspot.com /2009/10/dynamic-access-to-record-fields-in.html

Em geral, o que você quer é fazer referência a um campo nomeado dinamicamente em uma variável PL/PgSQL com tipo de registro como 'NEW' ou 'OLD'. Historicamente, isso tem sido irritantemente difícil e ainda é estranho, mas é pelo menos possível no 9.0.

Sua outra alternativa - que pode ser mais simples - é escrever seus gatilhos de auditoria em plperlu, onde as referências de campo dinâmicas são triviais.