Forskel mellem triggere og markører

Anonim

Triggers vs Cursors

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 dets andre anvendelser anvendes udløsere primært til at opretholde integritet i en database. En markør er en kontrolstruktur, der anvendes i databaser for at gennemgå databaseposterne. Det ligner meget det iterator, der leveres af mange programmeringssprog.

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 markører?

En markør er en kontrolstruktur, der anvendes i databaser for at gennemgå databaseposterne. Det ligner meget det iterator, der leveres af mange programmeringssprog. Udover at krydse gennem poster i en database, letter cursorer også data hentning, tilføjelse og sletning af poster. Ved at definere den rigtige måde kan markører også bruges til at krydse baglæns. Når en SQL-forespørgsel returnerer et sæt rækker, bliver de faktisk behandlet ved hjælp af cursorer. En markør skal deklareres og tildeles et navn, før det kan bruges. Derefter skal markøren åbnes ved hjælp af OPEN-kommandoen. Denne operation vil placere markøren lige før den første række af resultatet sæt af poster. Derefter skal markøren udføre FETCH operationen for faktisk at få en række data ind i applikationen. Endelig skal markøren lukkes ved hjælp af CLOSE-funktionen. Lukkede markører kan åbnes igen.

Hvad er forskellen mellem udløsere og markører?

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 markør er en kontrolstruktur, der anvendes i databaser for at gennemgå databaseposterne.En markør kan deklareres og bruges inden for en trigger. I en sådan situation vil erklæringen være inde i udløseren. Derefter vil markørens rækkevidde være begrænset til den udløser. Inden for en udløser, hvis en markør er erklæret på en indsat eller en slettet tabel, ville en sådan markør ikke være tilgængelig fra en indlejret udløser. Når en udløser er gennemført, vil alle markører, der er oprettet inden for udløseren, blive allokeret.