SQL triggere er deler av SQL-kode som kjøres på en bestemt hendelse eller når databasen staten matcher angitte vilkår . Selv om syntaksen for innstilling og sletting av triggere varierer litt på tvers av ulike databasesystemer, triggere er vanlig i nesten alle store database prosjektet. Database utviklere ofte bruker SQL triggere for automatisert logg eller analytisk funksjonalitet , som de kan konfigureres til å opprette eller oppdatere databasen etter en spørring kjøres . Årsaker
SQL triggere kan slettes manuelt via en " DROP TRIGGER " statement eller automatisk som en bivirkning av en annen SQL-spørringen . Utviklere satt opp en selvstendig slette utløser eller en utløser som sletter en annen trigger for gitte forhold. Disse utløser slettinger endre semantikk av databasen i form av analytisk behandling, som krever nøye oppmerksomhet og gjennomgang av databasen utvikleren . Du kan også slette triggere som en bivirkning av en annen spørring, for eksempel nettsidens prosessorer , forutsatt at forespørselen fullbyrder har tillatelse til å endre triggere for denne databasen .
Effects
< p > Slette en trigger er en normal funksjon av databasen , særlig når det gjøres manuelt eller automatisk i henhold til en godt gjennomtenkt database plan . Når en trigger sletting er uventet , men konsekvensene på databasen semantikk er alvorlige. Siden utløser ofte logger eller sortere databasen statistikk for analytisk bruk , sletting av denne logikken resulterer i ufullstendige logger eller feil statistikk . Avhengig av hvor mye organisasjonen er avhengig av databasen, kan dette skape kaos på forretningspraksis eller bare forårsake en ulempe for brukere av systemet.
Detection
Dessverre , fordi SQL dELETE utsagn ikke er innlogget som standard , er det svært vanskelig å oppdage en slettet SQL trigger. Hvis databasen er liten nok , kan systemadministratorer vanligvis antar at hvis en trigger har blitt slettet . De gjør dette ved å se etter savnede bivirkninger av avtrekkeren , for eksempel manglende oppføringer i loggen . SQL " SHOW TRIGGERS " kommandoen tillater utviklere å vise alle aktive utløsere og tilhørende betingelser i databasen. For mer komplekse databasesystemer, holde en streng logg over alle utløse operasjoner , på grunn av deres evne til å endre databasen semantikk i uforutsette måter .
Prevention
Database utvikling best- praksis bidrar til å ivareta semantikk av data fra å bli endret uforvarende ved feil eller feil i databasen koden . For å forhindre uventede semantiske endringer, for eksempel SQL trigger sletting , bør utløse uttalelser ikke oppdatere , sette inn eller slette en annen trigger . Håndtere alle utløser manuelt av database utviklere , holder nøye oversikt over de tilhørende endringer . Alle database utviklere bør være klar over utløse operasjoner over hele databasen , for å eliminere forvirring hvis en trigger er slettet .