SQL udløser er dele af SQL-kode , der kører på en bestemt begivenhed eller når databasen staten matcher angivne betingelser . Selvom syntaksen til indstilling og slette udløsere varierer lidt på tværs af forskellige databasesystemer , udløser er hverdagskost i næsten alle store database projekt. Database udviklere bruger ofte SQL triggers til automatiseret log eller analytisk funktionalitet, da de kan konfigureres til at oprette eller opdatere databasen efter en forespørgsel køres. Årsager
SQL triggers kan slettes enten manuelt via en " DROP TRIGGER " erklæring eller automatisk som en bivirkning af en anden SQL-forespørgsel. Udviklere oprettet en selvstændig sletning udløser eller en udløser , der sletter en anden udløsende faktor for givne betingelser . Disse udløser sletninger ændre semantik af databasen i form af analytisk behandling, der kræver opmærksomhed og gennemgang af databasen udvikler. Du kan også slette udløser som en bivirkning af en anden forespørgsel , såsom hjemmeside processorer , forudsat at forespørgslen eksekutor har tilladelser til at ændre udløser for denne database.
Effects
Sletning af en trigger er en normal funktion af databasen , især når det gøres manuelt eller automatisk i henhold til en velgennemtænkt database planen. Når en trigger sletning er uventet , men konsekvenserne på databasen semantik er alvorlige. Da udløser ofte log eller indsamle database statistik for analytisk anvendelse, sletning af denne logik medfører ufuldstændige træstammer eller defekte statistik. Afhængigt af hvor meget organisationen er afhængig af databasen , kan dette skabe ravage på forretningspraksis eller blot medføre en ulempe for systembrugere.
Detection
Desværre , fordi SQL slette sætninger ikke er logget som standard , er det meget vanskeligt at opdage en slettet SQL trigger . Hvis databasen er lille nok , kan systemadministratorer normalt gætte om en trigger er blevet slettet. De gør dette ved at lede efter forsvundne bivirkninger af aftrækkeren , for eksempel manglende logposter . SQL " SHOW udløser " kommando giver udviklere mulighed for at se alle aktive udløser og deres dertil knyttede betingelser i databasen. For mere komplekse databasesystemer , holde en streng log over alle trigger operationer på grund af deres evne til at ændre databasen semantik på uforudsete måder .
Forebyggelse
Database udvikling bedst praksis hjælpe med at beskytte semantik af data fra at blive ændret uforvarende af fejl eller fejl i databasen koden. For at forhindre uventede semantiske ændringer, såsom SQL trigger sletning, bør udløse udsagn ikke opdatere , indsætte eller slette en anden aftrækkeren. Håndtere alle udløser manuelt ved database udviklere , holde nøje optegnelser fra de associerede ændringer. Alle database udviklere bør være opmærksomme på trigger operationer på tværs af databasen , for at eliminere forvirring, hvis en udløser slettes.