Udløsere vs lagrede procedurer
I en database er en trigger en procedure (kodesegment), der udføres automatisk, når nogle specifikke hændelser forekommer i en tabel / visning. Blandt de andre anvendelser bruges udløsere hovedsageligt til at opretholde integritet i en database. En lagret procedure er en metode, der kan bruges af applikationer, der får adgang til en relationsdatabase. Typisk anvendes lagrede procedurer som en metode til validering af data og styring af adgang til en database.
Hvad er udløsere?
En trigger er en procedure (kodesegment), der udføres automatisk, når nogle specifikke begivenheder forekommer i en tabel / visning af en database. Blandt de andre anvendelser bruges udløsere hovedsageligt til at opretholde integritet i en database. Udløsere bruges også til håndhævelse af forretningsregler, revision af ændringer i databasen og replikering af data. Mest almindelige udløsere er Data Manipulation Language (DML) udløsere, der udløses, når data manipuleres. Nogle databasesystemer understøtter ikke-datatriggere, der udløses, når DDL-hændelser (Data Definition Language) opstår. Nogle eksempler er udløsere, der affyres, når tabeller oprettes, under begivenheds- eller tilbagevendende operationer osv. Disse udløsere kan især bruges til revision. Oracle-databasesystem understøtter udløsere på skemaniveau (dvs.udløsere, der udløses, når databaseskemaer modificeres) såsom Efter oprettelse, Før Ændring, Efter Ændring, Før Drop, Efter slip osv. For hver erklæring type udløser.
Hvad er lagrede procedurer?
En lagret procedure er en metode, der kan bruges af et program, der får adgang til en relationsdatabase. Typisk anvendes lagrede procedurer som en metode til validering af data og styring af adgang til en database. Hvis nogle databehandlingsoperationer kræver, at der udføres flere SQL-sætninger, implementeres sådanne operationer som lagrede procedurer. Når man påberåber en lagret procedure, skal en CALL- eller EXECUTE-erklæring bruges. Lagrede procedurer kan returnere resultater (for eksempel resultater fra SELECT-sætningerne). Disse resultater kan bruges af andre lagrede procedurer eller af applikationer. Sprog, der bruges til at skrive lagrede procedurer, understøtter typisk kontrolstrukturer, såsom hvis, 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 udløsere og lagrede procedurer?
En trigger er en procedure (kodesegment), der udføres automatisk, når nogle specifikke hændelser forekommer i en tabel / visning af en database, mens en lagret procedure er en metode, der kan bruges af et program, der får adgang til en relationsdatabase. Udløsere udføres automatisk, når den hændelse, som udløseren skal reagere på, forekommer. Men for at udføre en lagret procedure skal der bruges en specifik CALL- eller EXECUTE-sætning. Fejlfindingsudløsere kan være sværere og sværere end fejlretning af lagrede procedurer. Udløsere er meget nyttige, når du vil sikre dig, at der sker noget, når en bestemt begivenhed opstår.