SQL trigger può essere cancellata manualmente tramite una dichiarazione "DROP TRIGGER " o automaticamente come un effetto collaterale di un'altra query SQL . Sviluppatori impostare un trigger di auto- cancellazione o un trigger che elimina un altro trigger per le condizioni date. 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 ad esempio i processori pagina web , assumendo che l'esecutore di query dispone delle autorizzazioni per modificare i trigger per quel database .
Effetti
Eliminazione di un trigger è una normale funzione della base di dati , soprattutto se fatto manualmente o automaticamente in base a un piano di database ben pensato . Quando un trigger delezione è inaspettato , tuttavia, le conseguenze sulla semantica del database sono gravi . Dal momento che innesca spesso registro o raccogliere dati di database per l'uso analitico , la cancellazione di questi risultati logici nei log incompleti o statistiche difettosi . A seconda di quanto l'organizzazione si basa sul database , questo può devastare le pratiche commerciali o semplicemente causare un inconveniente per gli utenti del sistema .
Detection
Purtroppo , perché le istruzioni SQL delete 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 cancellato. Lo fanno con la ricerca di dispersi effetti collaterali del grilletto , per esempio, mancano le voci di registro . Il SQL "SHOW innesca" comando permette agli sviluppatori di visualizzare tutti i trigger attivi e le loro condizioni associate nel database. Per i sistemi di database più complessi , a mantenere un rigoroso registro di tutte le operazioni di innesco , a causa della loro capacità di alterare la semantica del database in modi imprevedibili .
Prevenzione
sviluppo di database best- pratiche aiutano a proteggere la semantica dei dati vengano modificati involontariamente da errori o errori nel codice del database . Per evitare che i cambiamenti semantici imprevisti, come SQL grilletto cancellazione , dichiarazioni di trigger non dovrebbero aggiornare , inserire o eliminare un altro trigger . Maneggiare tutti i trigger manualmente da sviluppatori di database , mantenendo un registro accurato dei cambiamenti associati. Tutti gli sviluppatori di database devono essere a conoscenza delle operazioni di attivazione attraverso il database , per eliminare la confusione se un trigger viene eliminato.
software © www.354353.com