Utløsere vs. lagrede prosedyrer
I en database er en trigger en prosedyre (kodesegment) som kjøres automatisk når noen spesifikke hendelser oppstår i en tabell/visning. Blant andre bruksområder brukes triggere hovedsakelig for å opprettholde integritet i en database. En lagret prosedyre er en metode som kan brukes av applikasjoner som får tilgang til en relasjonsdatabase. Vanligvis brukes lagrede prosedyrer som en metode for å validere data og kontrollere tilgang til en database.
Hva er utløsere?
En trigger er en prosedyre (kodesegment) som kjøres automatisk når noen spesifikke hendelser oppstår i en tabell/visning av en database. Blant andre bruksområder brukes triggere hovedsakelig for å opprettholde integritet i en database. Utløsere brukes også til å håndheve forretningsregler, revidere endringer i databasen og replikere data. De vanligste triggerne er DML-utløsere (Data Manipulation Language) som utløses når data manipuleres. Noen databasesystemer støtter ikke-datautløsere, som utløses når Data Definition Language (DDL)-hendelser oppstår. Noen eksempler er triggere som utløses når tabeller opprettes, under commit- eller rollback-operasjoner, etc. Disse triggerne kan spesielt brukes til revisjon. Oracle-databasesystemet støtter utløsere på skjemanivå (dvs. utløsere som utløses når databaseskjemaer endres) som etter opprettelse, før endring, etter endring, før slipp, etter slipp osv. De fire hovedtypene av utløsere som støttes av Oracle er radnivåutløsere, Kolonnenivåutløsere, hver radtype utløses og for hver utsagnstype utløsere.
Hva er lagrede prosedyrer?
En lagret prosedyre er en metode som kan brukes av en applikasjon som får tilgang til en relasjonsdatabase. Vanligvis brukes lagrede prosedyrer som en metode for å validere data og kontrollere tilgang til en database. Hvis en databehandlingsoperasjon krever at flere SQL-setninger utføres, implementeres slike operasjoner som lagrede prosedyrer. Når du starter 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 av applikasjoner. Språk som brukes til å skrive lagrede prosedyrer støtter typisk kontrollstrukturer som if, while, for osv. Avhengig av databasesystemet 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 trigger er en prosedyre (kodesegment) som kjøres automatisk når noen spesifikke hendelser oppstår i en tabell/visning av en database, mens en lagret prosedyre er en metode som kan brukes av en applikasjon som får tilgang til en relasjonsdatabase. Triggere utføres automatisk når hendelsen som utløseren skal svare på inntreffer. Men for å utføre en lagret prosedyre må en spesifikk CALL- eller EXECUTE-setning brukes. Feilsøking av utløsere kan være vanskeligere og vanskeligere enn å feilsøke lagrede prosedyrer. Utløsere er veldig nyttige når du vil forsikre deg om at noe skjer når en bestemt hendelse inntreffer.