desencadenantes SQL son porciones de código SQL que se ejecutan en un determinado evento o cuando el estado de la base de datos coincide con las condiciones especificadas . Aunque la sintaxis para establecer y eliminar disparadores varía ligeramente a través de diferentes sistemas de bases de datos , factores desencadenantes son lugar común en prácticamente todos los proyectos de base de datos a gran escala . Desarrolladores de base de datos a menudo utilizan disparadores SQL para registro automático o funcionalidad analítica , ya que pueden ser configurados para crear o actualizar la base de datos después de que se ejecuta una consulta . Causas
SQL disparadores se puede eliminar de forma manual a través de un comunicado " DROP TRIGGER " o automáticamente como un efecto secundario de otra consulta SQL . Los desarrolladores crearon un disparador auto- borrado o un disparador que elimina otro desencadenante de las condiciones dadas. Estas supresiones de activación alteran la semántica de la base de datos en términos de procesamiento analítico , que requiere una cuidadosa atención y revisión por el desarrollador de base de datos . También puede eliminar desencadenantes como un efecto secundario de otra consulta , tales como procesadores de página web , en el supuesto de que el ejecutor de consultas tiene permisos para modificar factores desencadenantes de esa base de datos .
Efectos
Eliminación de un disparo es una función normal de la base de datos , sobre todo cuando se hace de forma manual o automáticamente de acuerdo a un plan de la base de datos bien pensado. Cuando una deleción gatillo es inesperado , sin embargo , las consecuencias sobre la semántica de base de datos son graves . Dado que a menudo provoca tronco o cotejar las estadísticas de base de datos para uso analítico , la supresión de esta lógica resulta en registros incompletos o estadísticas defectuosas. Dependiendo de la cantidad de la organización se basa en la base de datos , esto puede causar estragos en las prácticas de negocios o simplemente causar un inconveniente para los usuarios del sistema .
Detección
desgracia , ya que las instrucciones delete de SQL no se registran de forma predeterminada , es muy difícil detectar un disparador SQL eliminado. Si la base de datos es lo suficientemente pequeño , los administradores de sistemas por lo general pueden adivinar si un disparador ha sido eliminada. Lo hacen mediante la búsqueda de desaparecidos los efectos secundarios de la activación , por ejemplo , la falta de entradas de registro. El SQL " SHOW TRIGGERS " comando permite a los desarrolladores ver todos los desencadenantes activos y las condiciones asociadas en la base de datos . Para los sistemas de bases de datos más complejos , mantener un registro riguroso de todas las operaciones de activación , debido a su capacidad para alterar la semántica de base de datos de maneras impredecibles .
Prevención
Las bases de datos más prácticas ayudan a proteger la semántica de los datos se modifiquen involuntariamente por errores o errores en el código base de datos. Para evitar cambios semánticos inesperados, como la supresión trigger SQL , sentencias de activación no deben actualizar, insertar o eliminar otro disparo. Manejar todos los disparadores de forma manual por los desarrolladores de bases de datos , mantenimiento de registros detallados de los cambios asociados. Todos los desarrolladores de bases de datos deben ser conscientes de las operaciones de activación a través de la base de datos , para eliminar la confusión si se elimina un factor desencadenante.