Udløsere vs gemte procedurer
I en database er en trigger en procedure (kodesegment), der udføres automatisk, når nogle specifikke begivenheder forekommer i en tabel / visning. Blandt dens andre anvendelser bruges triggere hovedsageligt til at opretholde integritet i en database. En gemt procedure er en metode, der kan bruges af applikationer, der får adgang til en relationsdatabase. Lagrede procedurer bruges typisk som en metode til validering af data og kontrol af adgang til en database.
Hvad er triggere?
En trigger er en procedure (kodesegment), der udføres automatisk, når nogle specifikke begivenheder forekommer i en tabel / visning af en database. Blandt dens andre anvendelser bruges triggere hovedsageligt til at opretholde integritet i en database. Triggere bruges også til håndhævelse af forretningsregler, revision af ændringer i databasen og gentagelse af data. Mest almindelige triggere er Data Manipulation Language (DML) triggere, der udløses, når data manipuleres. Nogle databasesystemer understøtter ikke-datatriggere, som udløses, når Data Definition Language (DDL) begivenheder opstår. Nogle eksempler er udløsere, der fyres, når der oprettes tabeller, under udførelse eller tilbageførsel, osv. Disse triggere kan især bruges til revision. Oracle-databasesystem understøtter udløsere af skemaniveauer (dvs. udløses triggers, når databaseskemaer ændres) såsom After Creation, Before Alter, After Alter, Before Drop, After Drop osv. De fire hovedtyper af triggere, der understøttes af Oracle, er Row Level-triggere, Kolumnniveau-triggere, hver rækketypetrigger og for hver sætningstypetrigger.
Hvad er lagrede procedurer?
En gemt procedure er en metode, der kan bruges af en applikation, der får adgang til en relationsdatabase. Lagrede procedurer bruges typisk som en metode til validering af data og kontrol af adgang til en database. Hvis nogle databehandlingsoperationer kræver, at flere SQL-sætninger udføres, implementeres sådanne operationer som lagrede procedurer. Når der påberåbes en gemt procedure, skal en CALL- eller EXECUTE-sætning bruges. Gemte procedurer kan returnere resultater (for eksempel resultater fra SELECT-sætningerne). Disse resultater kan bruges ved andre lagrede procedurer eller af applikationer. Sprog, der bruges til at skrive lagrede procedurer understøtter typisk kontrolstrukturer, som, mens, for osv. Afhængigt af det anvendte databasesystem kan flere sprog bruges til at implementere lagrede procedurer (f.eks. PL / SQL og java i Oracle, T- SQL (Transact-SQL) og .NET Framework i Microsoft SQL Server). Desuden bruger MySQL sine egne lagrede procedurer.
Hvad er forskellen mellem triggere og lagrede procedurer?
En trigger er en procedure (kodesegment), der udføres automatisk, når nogle specifikke begivenheder forekommer i en tabel / visning af en database, mens en gemt procedure er en metode, der kan bruges af en applikation, der får adgang til en relationsdatabase. Udløsere udføres automatisk, når den hændelse, som udløseren skal reagere på, opstår. Men for at udføre en gemt procedure skal en bestemt CALL- eller EXECUTE-sætning bruges. Fejlsøgning udløsere kan være sværere og vanskeligere end fejlsøgning lagrede procedurer. Udløsere er meget nyttige, når du vil sikre dig, at der sker noget, når en bestemt begivenhed opstår.