SQL trigger eliminati

November 15

SQL trigger eliminati


trigger SQL sono porzioni di codice SQL che vengono eseguiti su un determinato evento o quando le partite stato del database condizioni specificate. Anche se la sintassi per l'impostazione e l'eliminazione di trigger varia leggermente tra i diversi sistemi di database, trigger sono all'ordine del giorno in quasi ogni progetto di database di grandi dimensioni. gli sviluppatori di database spesso utilizzano SQL trigger per registro automatico o funzionalità analitiche, in quanto possono essere configurati per creare o aggiornare il database dopo una query viene eseguita.

Le cause

trigger SQL possono essere eliminati manualmente tramite una dichiarazione "DROP TRIGGER" o automaticamente, come un effetto collaterale di un'altra query SQL. Gli sviluppatori istituito un trigger auto-cancellazione o un trigger che elimina un altro trigger per determinate condizioni. Queste le eliminazioni di trigger alterano la semantica del database in termini di elaborazione analitica, che richiede attenzione e la revisione dallo sviluppatore del database. È anche possibile eliminare i trigger come un effetto collaterale di un'altra query, come i processori pagina web, partendo dal presupposto che l'esecutore di query dispone di autorizzazioni per modificare trigger per quel database.

effetti

L'eliminazione di un trigger è una funzione normale del database, in particolare quando fatto manualmente o automaticamente in base a un piano di database ben pensato. Quando una delezione trigger è inaspettato, tuttavia, le conseguenze sulla semantica del database sono gravi. Dal momento che inneschi spesso log o raccogliere dati di database per l'uso analitica, la cancellazione di questa logica risultati nei registri incompleti o statistiche difettosi. A seconda di quanto l'organizzazione si basa sul database, questo può devastare pratiche commerciali o semplicemente causare un inconveniente per gli utenti del sistema.

rivelazione

Purtroppo, perché le istruzioni SQL cancellare non vengono registrati per impostazione predefinita, è molto difficile da rilevare un trigger SQL cancellato. Se il database è abbastanza piccolo, gli amministratori di sistema di solito può indovinare se un trigger è stato eliminato. Lo fanno con la ricerca di dispersi effetti collaterali del grilletto; per esempio, mancano le voci di registro. Il SQL "SHOW innesca" il comando consente agli sviluppatori di visualizzare tutti i trigger attivi e le loro condizioni associate nel database. Per maggiori sistemi di database complessi, mantenere un rigoroso registro di tutte le operazioni di attivazione, a causa della loro capacità di alterare la semantica di database in modi imprevisti.

Prevenzione

sviluppo di database best-practice proteggere la semantica dei dati non vengano modificati involontariamente da errori o errori nel codice del database. Per evitare che i cambiamenti semantici inaspettati, come ad esempio SQL grilletto eliminazione, innescare dichiarazioni non deve aggiornare, inserire o cancellare un altro trigger. Gestire tutte innesca manualmente da sviluppatori di database, mantenendo attente registrazioni delle variazioni associate. Tutti gli sviluppatori di database devono essere consapevoli delle operazioni di trigger attraverso il database, per eliminare la confusione se un trigger viene eliminato.