São procedimentos armazenados que são executados a partir de um "gatilho". Como o próprio nome sugere, podemos programar essas stored procedures especiais para que sejam acionadas a partir de um comando SQL como INSERT, DELETE ou UPDATE, por exemplo. Podemos usar esses procedimentos para automatizar processos que são executados muitas vezes ou, no caso de auditoria, por exemplo. As Triggers são stored procedures especiais executadas automaticamente e são divididas em três partes:

  • Evento: tipo de evento que será executado;
  • Condição: necessidade de executar ou não a ação;
  • Ação: sequência de comandos que serão executados.

Geralmente, utilizamos esse procedimento para manter a integridade nas alterações, ou seja, para auditoria. Mas atenção: evite ao máximo o uso de triggers por questões de performance. Imagine, por exemplo, uma tarefa de inserir dados em uma tabela de auditoria após um DELETE em uma tabela do banco, sendo executada dezenas de vezes ao dia. A trigger será acionada dezenas de vezes ao dia, diminuindo a performance do banco e gerando lentidão.

Outro problema está relacionado à possibilidade de um usuário, com permissão para habilitar e desabilitar uma trigger, corromper essa auditoria que estamos tentando implementar. Por exemplo, se alguém mal-intencionado desabilita uma trigger que é responsável por inserir dados em uma tabela de auditoria sempre que uma atualização de cadastro de funcionários ocorre, e esse usuário desabilita a trigger, altera salários e em seguida habilita a trigger de novo, a auditoria seria extremamente corrompida. Por isso, existem métodos mais confiáveis e performáticos dentro dos SGBDs.

Exemplo: Imagine que a empresa deseja ter uma tabela de auditoria para aumentar a segurança de suas transações. Sempre que ações de inserção e atualização de dados ocorrerem, é necessário que essas ações sejam catalogadas. Podemos utilizar uma TRIGGER que automatizará esse processo. O script de criação e utilização dela está abaixo.

Comentários

Postagens mais visitadas