Utløsere mot markører
I en database er en trigger en prosedyre (kodesegment) som utføres automatisk når noen spesifikke hendelser oppstår i en tabell / visning. Blant andre bruksområder brukes utløsere hovedsakelig for å opprettholde integritet i en database. En markør er en kontrollstruktur som brukes i databaser for å gå gjennom databasepostene. Det ligner veldig på iteratoren som tilbys av mange programmeringsspråk.
Hva er utløsere?
En utløser er en prosedyre (kodesegment) som utføres automatisk når noen spesifikke hendelser oppstår i en tabell / visning av en database. Blant andre bruksområder brukes utløsere hovedsakelig for å opprettholde integritet i en database. Utløsere brukes også til å håndheve forretningsregler, revidere endringer i databasen og replikere data. De vanligste utløserne er Data Manipulation Language (DML) -utløsere som utløses når data manipuleres. Noen databasesystemer støtter triggere som ikke er data, som utløses når DDL-hendelser (Data Definition Language) oppstår. Noen eksempler er utløsere som utløses når tabeller opprettes, under forpliktelse eller tilbakeføring, osv. Disse utløserne kan spesielt brukes til revisjon. Oracle-databasesystemet støtter utløsere på skjema-nivå (dvs.utløsere utløst når databaseskjemaer er endret) som Etter opprettelse, Før endring, Etter endring, før slipp, etter slipp osv. For hver utsagnstype utløser.
Hva er markører?
En markør er en kontrollstruktur som brukes i databaser for å gå gjennom databasepostene. Det ligner veldig på iteratoren som tilbys av mange programmeringsspråk. I tillegg til å krysse gjennom poster i en database, gjør markører det også mulig å hente data, legge til og slette poster. Ved å definere riktig måte kan markører også brukes til å krysse bakover. Når et SQL-spørsmål returnerer et sett med rader, blir de faktisk behandlet ved hjelp av markører. En markør må deklareres og tildeles et navn før den kan brukes. Deretter må markøren åpnes ved hjelp av OPEN-kommandoen. Denne operasjonen vil plassere markøren like før den første raden i resultatsettet med poster. Deretter må markøren utføre FETCH-operasjonen for å faktisk få en rad med data til applikasjonen. Til slutt må markøren lukkes ved hjelp av CLOSE-operasjonen. Lukkede markører kan åpnes igjen.
Hva er forskjellen mellom utløsere og markører?
En utløser er en prosedyre (kodesegment) som utføres automatisk når noen spesifikke hendelser oppstår i en tabell / visning av en database, mens en markør er en kontrollstruktur som brukes i databaser for å gå gjennom databasepostene. En markør kan deklareres og brukes i en trigger. I en slik situasjon vil erklæringen være inne i utløseren. Da vil markørens omfang være begrenset til den utløseren. Hvis en markør blir deklarert i en satt inn eller en slettet tabell, vil en slik markør ikke være tilgjengelig fra en nestet trigger innenfor en utløser. Når en utløser er fullført, vil alle markørene som er opprettet i utløseren bli allokert.