triggers SQL sont des portions de code SQL qui sont exécutés sur un certain événement ou lorsque l'état de base de données correspond à des conditions précises. Bien que la syntaxe pour la définition et la suppression de déclencheurs varie légèrement entre les différents systèmes de bases de données , les déclencheurs sont monnaie courante dans pratiquement tous les projets de base de données à grande échelle . Les développeurs de base de données utilisent souvent des déclencheurs SQL pour log automatisé ou la fonctionnalité analytique, comme ils peuvent être configurés pour créer ou mettre à jour la base de données après une requête est exécutée . Causes
triggers SQL peut être supprimé manuellement via une déclaration « DROP TRIGGER " ou automatiquement comme un effet secondaire d'une autre requête SQL. Les développeurs ont créé un déclencheur d'auto- suppression ou un déclencheur qui supprime un autre déclencheur pour des conditions données. Ces suppressions de déclenchement modifier la sémantique de la base de données en matière de traitement analytique , ce qui nécessite une attention particulière et l'examen par le développeur de base de données . Vous pouvez également supprimer des déclencheurs comme un effet secondaire d'une autre requête, tels que les processeurs page web , en supposant que l'exécuteur requête dispose des autorisations pour modifier déclencheurs de base de données.
Effets
Suppression d'un trigger est une fonction normale de la base de données , en particulier lorsqu'elle est effectuée manuellement ou automatiquement selon un plan de base de données bien pensé. Lorsque la suppression d'un trigger est inattendue , cependant , les conséquences sur la sémantique de base de données sont graves. Depuis déclenche connectez-vous ou collationner les statistiques de base de données pour une utilisation analytique, de la suppression de cette logique des résultats dans les journaux incomplets ou erronés statistiques souvent . Selon combien l'organisation s'appuie sur la base de données , cela peut faire des ravages sur les pratiques d'affaires ou simplement provoquer une gêne pour les utilisateurs du système .
Détection
Malheureusement , parce que les déclarations SQL DELETE ne sont pas enregistrés par défaut , il est très difficile de détecter un trigger SQL supprimée. Si la base est assez petit , les administrateurs système peuvent généralement deviner si un déclencheur a été supprimé. Ils le font en cherchant des disparus effets secondaires de la gâchette , par exemple , manquant entrées de journal. Le SQL "SHOW déclencheurs» commande permet aux développeurs de visualiser tous les déclencheurs actifs et leurs conditions associées dans la base de données. Pour les systèmes de base de données plus complexes , tenir un journal strict de toutes les opérations de déclenchement , en raison de leur capacité à modifier la sémantique de base de données par des moyens imprévus .
Prévention
développement de base de données plus pratiques aident à protéger la sémantique des données d'être modifié à son insu par des erreurs ou des erreurs dans le code de base de données . Pour éviter des changements sémantiques inattendues, telles que SQL déclenchement suppression , les déclarations de déclenchement ne doivent pas mettre à jour , insérer ou supprimer un autre déclencheur . Manipuler tous déclenche manuellement par les développeurs de bases de données , en gardant un registre précis des changements associés. Tous les développeurs de bases de données doivent être au courant des opérations de déclenchement à travers la base de données , afin d'éliminer la confusion si un déclencheur est supprimé.