MySQL gatilho log de auditoria com base em comparações
-
22-08-2019 - |
Pergunta
Ao olhar para questões semelhantes como:
Obtendo gatilho para inserir valores de coluna alterados apenas na tabela de auditoria
Gostaria de dar este passo mais longe e comparar os dados atualizados para ver se ele realmente foi atualizado ... Eu não tenho certeza se este é o ideal (desempenho sábio).
Fundo:
Nós temos alguns dados que são periodicamente atualizados pelo usuário.
Quando esses dados é atualizado, eu gostaria de comparar o que eles submetidos com o que já está lá eo que eles submetidos, para garantir que não tenha havido uma alteração.
Se houve uma mudança, proceder para escrever uma entrada de auditoria para a mesa histórico de auditoria central, descrevendo os campos alterados.
Pensamentos / idéias? Fiz o meu melhor para procurar, mas não teve muita sorte. Eu vou ser feliz para apagar esta pergunta se é uma duplicata.
Obrigado!
Solução
Você poderia escrever um gatilho BEFORE UPDATE
onde você usar os aliases OLD
e NEW
em seu gatilho para comparar os valores que estavam disponíveis no registro antes que a atualização com os valores que você está atualizando com. Dependendo do resultado da comparação você pode escrever uma entrada para a sua tabela de auditoria.