SQL -Trigger sind Teile der SQL -Code, der auf einem bestimmten Ereignis ausgeführt werden oder wenn der Zustand der Datenbank übereinstimmt angegebenen Bedingungen. Obwohl die Syntax für das Setzen und Löschen von Triggern variiert leicht zwischen verschiedenen Datenbank-Systemen , sind Auslöser in nahezu allen großen Datenbank- Projekt an der Tagesordnung. Datenbank -Entwickler verwenden häufig Auslöser für automatisierte SQL Log oder analytische Funktionalität , wie sie konfiguriert werden kann, erstellen oder aktualisieren Sie die Datenbank nach einer Abfrage ausgeführt werden. Verursacht
SQL Trigger kann entweder manuell über einen "DROP TRIGGER "-Anweisung oder automatisch als Nebeneffekt einer anderen SQL-Abfrage gelöscht. Entwickler legen eine selbstständige Löschen Trigger oder einen Trigger löscht , dass ein weiterer Auslöser für gegebenen Bedingungen . Diese Trigger Deletionen verändert die Semantik der Datenbank in Bezug auf analytische Verarbeitung, erfordern besondere Aufmerksamkeit und Überprüfung durch den Datenbank-Entwickler . Sie können auch löschen Auslöser als Nebeneffekt einer anderen Abfrage , wie die Homepage -Prozessoren der Annahme, dass die Abfrage Testamentsvollstrecker Berechtigungen zum Auslöser für diese Datenbank ändern muss.
Effects
Löschen eines Triggers ist eine normale Funktion der Datenbank , insbesondere dann, wenn manuell oder automatisch nach einem gut durchdachten Plan Datenbank getan . Wenn ein Trigger Deletion unerwartet ist , sind jedoch die Auswirkungen auf die Datenbank Semantik ernst. Da löst oft einloggen oder sammeln Datenbank-Statistiken für analytische Verwendung , Löschung dieser Logik führt zu einer unvollständigen Logs oder fehlerhafte Statistik. Je nachdem, wie viel die Organisation beruht auf der Datenbank , kann dies verheerend auf Geschäftspraktiken anrichten oder einfach eine Unannehmlichkeit verursachen für System- Benutzer .
Erkennung
Leider , weil SQL Delete-Anweisungen standardmäßig nicht angemeldet sind, ist es sehr schwierig , eine gelöschte SQL-Trigger erkennen . Wenn die Datenbank ist klein genug , können Systemadministratoren in der Regel denke, wenn ein Trigger gelöscht wurde. Sie tun dies , indem sie nach fehlenden Nebenwirkungen der Auslöser , zum Beispiel fehlende Log-Einträge . Die SQL " SHOW Trigger" -Befehl ermöglicht es Entwicklern , um alle aktiven Trigger und die damit verbundenen Bedingungen in der Datenbank anzuzeigen. Für komplexere Datenbank-Systeme , halten eine strenge Protokoll aller Operationen auslösen , wegen ihrer Fähigkeit zur Datenbank Semantik in unvorhergesehenen Möglichkeiten ändern.
Prevention
Datenbankentwicklung best- Praktiken schützen die Semantik der Daten vor unabsichtlich durch Fehler oder Fehler in der Datenbank-Code verändert . Um unerwartete semantischen Veränderungen, wie SQL-Trigger Löschen zu verhindern , sollte ein Trigger Aussagen nicht aktualisieren , einfügen oder löschen weiteren Trigger . Behandeln Sie alle Trigger manuell durch Datenbank-Entwickler , halten sorgfältige Aufzeichnungen über die damit verbundenen Veränderungen . Alle Datenbank-Entwickler sollten sich bewusst sein Trigger Operationen in der Datenbank , um Verwirrung zu beseitigen, wenn ein Trigger gelöscht.