Utløser vs lagrede prosedyrer
I en database er en utløser en prosedyre (kodesegment) som utføres automatisk når noen spesifikke hendelser oppstår i en tabell / visning. Blant andre bruksområder brukes utløsere hovedsakelig for å opprettholde integritet i en database. En lagret prosedyre er en metode som kan brukes av programmer som åpner en relasjonsdatabase. Vanligvis brukes lagrede prosedyrer som en metode for å validere data og kontrollere tilgang til en database.
Hva er utløsere?
En utløser er en prosedyre (kodesegment) som utføres automatisk når noen spesifikke hendelser oppstår i en tabell / visning av en database. Blant andre bruksområder brukes utløsere hovedsakelig for å opprettholde integritet i en database. Utløsere brukes også til å håndheve forretningsregler, revisere endringer i databasen og replikere data. De vanligste utløserne er DML-triggere som aktiveres når data blir manipulert. Noen databasesystemer støtter ikke-data utløser, som utløses når data definisjon språk (DDL) hendelser oppstår. Noen eksempler er utløsere som avfyres når bord opprettes, under forpliktelser eller tilbakevirkningsoperasjoner oppstår, etc. Disse utløsere kan spesielt brukes til revisjon. Oracle database system støtter skjema nivå utløsere (dvs. utløsere sparket når databaseskjemaer er endret) som etter Creation, Before Alter, After Alter, Before Drop, After Drop, etc. De fire hovedtypene av utløsere støttet av Oracle er Row Level utløser, Kolonne nivå utløser, Hver rad Type utløser og For hver Statement Type utløser.
Hva er lagrede prosedyrer?
En lagret prosedyre er en metode som kan brukes av et program som åpner en relasjonsdatabase. Vanligvis brukes lagrede prosedyrer som en metode for å validere data og kontrollere tilgang til en database. Hvis noen databehandlingsoperasjoner krever at flere SQL-setninger blir utført, implementeres slike operasjoner som lagrede prosedyrer. Når man påkaller en lagret prosedyre, må en CALL eller EXECUTE-setning brukes. Lagrede prosedyrer kan returnere resultater (for eksempel resultater fra SELECT-setningene). Disse resultatene kan brukes av andre lagrede prosedyrer eller ved applikasjoner. Språk som brukes til å skrive lagrede prosedyrer, støtter vanligvis kontrollstrukturer som om, mens, for osv. Avhengig av hvilket databasesystem som brukes, kan flere språk brukes til å implementere lagrede prosedyrer (f.eks. PL / SQL og Java i Oracle, T- SQL (Transact-SQL) og .NET Framework i Microsoft SQL Server). Videre bruker MySQL sine egne lagrede prosedyrer.
Hva er forskjellen mellom utløsere og lagrede prosedyrer?
En utløser er en prosedyre (kodesegment) som utføres automatisk når noen spesifikke hendelser forekommer i en tabell / visning av en database, mens en lagret prosedyre er en metode som kan brukes av et program som åpner en relasjonsdatabase. Utløsere utføres automatisk når hendelsen som utløseren skal svare på, oppstår. Men for å utføre en lagret prosedyre må en bestemt CALL eller EXECUTE-setning brukes. Feilsøkingsutløsere kan være vanskeligere og vanskeligere enn å feilsøke lagrede prosedyrer. Utløsere er svært nyttige når du vil sørge for at noe skjer når en bestemt hendelse oppstår.