gatilhos SQL são porções de código SQL que são executadas em um determinado evento ou quando os jogos estaduais de banco de dados condições especificadas. Embora a sintaxe para definir e excluir gatilhos varia ligeiramente entre os diferentes sistemas de banco de dados, gatilhos são comuns em praticamente todos os projetos de banco de dados em larga escala. Desenvolvedores de banco de dados costumam usar SQL gatilhos para log automatizado ou funcionalidade analítica , uma vez que pode ser configurado para criar ou atualizar o banco de dados após uma consulta é executada . Causas
gatilhos SQL podem ser apagados manualmente por meio de uma declaração " DROP TRIGGER " ou automaticamente como um efeito colateral de uma outra consulta SQL. Desenvolvedores configurar um gatilho auto- excluir ou um gatilho que exclui outro gatilho para determinadas condições. Essas exclusões gatilho alterar a semântica do banco de dados em termos de processamento analítico , exigindo muita atenção e revisão pelo desenvolvedor de banco de dados . Você também pode apagar os gatilhos como um efeito colateral de uma outra consulta, como processadores de webpage, assumindo que o executor consulta tem permissões para alterar gatilhos para esse banco de dados .
Efeitos
Apagar um gatilho é uma função normal do banco de dados , especialmente quando feito manualmente ou automaticamente de acordo com um plano de dados bem pensado. Quando uma exclusão gatilho é inesperado , no entanto, as conseqüências sobre a semântica do banco de dados são graves. Desde gatilhos muitas vezes registrar ou recolher estatísticas de banco de dados para uso analítico , a supressão desta lógica resulta em registros incompletos ou estatísticas defeituosos. Dependendo de quanto a organização conta com o banco de dados , isso pode causar estragos em práticas de negócios ou simplesmente causar um inconveniente para os usuários do sistema .
Detecção
Infelizmente , porque SQL DELETE não está logado , por padrão , é muito difícil de detectar um gatilho SQL excluído. Se o banco de dados é pequeno o suficiente , os administradores de sistema podem normalmente acho que se um gatilho foi excluído. Eles fazem isso procurando faltando efeitos colaterais do gatilho , por exemplo, as entradas de log ausentes . O SQL " MOSTRA gatilhos" comando permite que os desenvolvedores para ver todos os gatilhos ativos e suas condições associadas na base de dados . Para os sistemas de banco de dados mais complexos , manter um registro rigoroso de todas as operações de disparo , por causa de sua capacidade de alterar a semântica do banco de dados de maneiras imprevisíveis .
Prevenção
desenvolvimento de banco de dados best- práticas de ajudar a proteger a semântica dos dados sejam alterados inadvertidamente por erros ou erros no código de banco de dados . Para evitar alterações semânticas inesperadas, como a eliminação gatilho SQL , declarações de gatilho não deve atualizar , inserir ou excluir outro gatilho . Lidar com todos os gatilhos manualmente pelos desenvolvedores de banco de dados , mantendo registros cuidadosos de as mudanças associadas . Todos os desenvolvedores de banco de dados deve estar ciente das operações de gatilho em todo o banco de dados, para eliminar a confusão se um gatilho é excluído.