Forskel mellem udløsere og lagrede procedurer

Anonim

Udløser mod lagrede procedurer

I en database er en trigger en procedure (kodesegment), der udføres automatisk når nogle specifikke hændelser opstår i en tabel / visning. Blandt dets andre anvendelser anvendes udløsere primært til at opretholde integritet i en database. En lagret procedure er en metode, der kan bruges af applikationer, der har 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 hændelser forekommer i en tabel / visning af en database. Blandt dets andre anvendelser anvendes udløsere primært til at opretholde integritet i en database. Udløsere anvendes også til håndhævelse af forretningsregler, revision af ændringer i databasen og replikering af data. Mest almindelige udløsere er DML-triggere med data manipulationssprog, der udløses, når data manipuleres. Nogle databasesystemer understøtter ikke-data-triggere, som udløses, når data definition sprog (DDL) hændelser opstår. Nogle eksempler er triggere, der fyres, når der oprettes tabeller, under commit eller rollback operationer forekommer osv. Disse triggere kan især bruges til revision. Oracle database system understøtter skema niveau udløsere (dvs. udløsere fyret, når databaseskemaer er ændret) som efter oprettelse, før ændring, efter ændring, før drop, efter drop osv. De fire hovedtyper af udløsere understøttet af Oracle er Row Level udløser, Kolonne Niveau udløser, Hver række Type udløser og For hver Statement Type udløser.

Hvad er lagrede procedurer?

En lagret procedure er en metode, der kan bruges af en applikation, der har 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 flere SQL-sætninger, udføres sådanne operationer som lagrede procedurer. Når der påberåbes en gemt procedure, skal en CALL eller EXECUTE-erklæring anvendes. Lagrede procedurer kan returnere resultater (for eksempel resultater fra SELECT-sætningerne). Disse resultater kan bruges af andre lagrede procedurer eller ved applikationer. Sprog, der bruges til at skrive lagrede procedurer, understøtter typisk kontrolstrukturer som f.eks. Hvis, for osv. Afhængigt af det anvendte databasesystem kan flere sprog bruges til at gennemføre 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 gemte 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 en applikation, der har adgang til en relationsdatabase.Udløsere udføres automatisk, når den begivenhed, som triggeren skal reagere på, opstår. Men for at udføre en lagret procedure skal der anvendes en specifik CALL eller EXECUTE-erklæring. Fejlfinding kan være sværere og vanskeligere end debugging lagrede procedurer. Udløsere er meget nyttige, når du vil sikre dig, at der sker noget, når en bestemt begivenhed opstår.