Innholdsfortegnelse
PostgreSQL lar oss bruke forskjellige språk for å utføre funksjoner, denne funksjonaliteten er ganske nyttig og gjør den til en av de mest fleksible og kraftfulle databasene, men den lar oss også gjøre fungerer som utløsere, det vil si funksjoner som automatisk oppdager hvilken handling som har skjedd og utløser en annen handling, det vil si hvis vi setter inn i en tabell for eksempel en avtrekker å oppdatere i en annen, for å sette en helt grunnleggende operasjon av hva en trigger er.Fungerer som triggere
Ingen verdifull databasemotor bør være uten muligheten til å bruke utløser for automatisk å oppdage og håndtere endringer i data. PostgreSQL tilbyr utløsere på utsagn og rekordnivå; de som er på setningsnivå, kjøres en gang for hver setning, mens de som er på registernivå kan kjøre mange ganger, for eksempel hvis vi gjør en OPPDATER som påvirker 1500 poster, vil en setningsnivåutløser bare kjøre en gang, mens rekordutløseren vil kjøre opptil 1500 ganger.
Et annet viktig poeng i dette emnet er skillet mellom instruksjonene FØR, DESPUES DE og I STEDET AV i en utløser.
En trigger som fungerer med FØR avfyres før kommandoen utføres, og gir muligheten til å endre eller avbryte eller manipulere dataene før de endres, a ETTER utløser den utløses etter at endringen er utført, og gir dermed muligheten til å skaffe dataene som allerede er modifisert, denne typen utløsere brukes hovedsakelig i logger og replikasjonsfunksjoner, I stedet for utløser Den kjører i stedet for handlingen som normalt ville bli utført, også en av særegenhetene ved dette er at den bare fungerer med synspunktene.
Bygg en funksjon med utløser
Som når vi snakker om funksjoner, vet vi at vi kan bruke andre språk for å gjøre dem, for funksjoner som utløsere er det også mulig å bruke nesten alle språk, men PL / pgSQL Det er en favoritt å utføre disse oppgavene, derfor vil følgende eksempel som vi vil se på bildet bli laget på dette språket, etter at vi har sett eksemplet, vil vi forklare det i detalj:
1. Funksjonen er definert som en trigger og kan brukes i en hvilken som helst tabell som har en upd_ts -kolonne. Verdien av denne kolonnen vil bli endret før du returnerer. Samtalen foretas på arrangementet FØR fordi hvis den ble brukt i DESPUES DE alle endringer i den nye posten vil bli ignorert.
2. Utløseren utløses før posten lagres.
3. Denne funksjonaliteten som bare er tilgjengelig i PostgreSQL 9.0 eller høyere tillater oss å bare endre postene som faktisk har blitt påvirket. I tidligere versjoner var det nødvendig å gjøre sammenligninger mellom de gamle og de nye feltene, men dette støttes imidlertid ikke for INSTEAD OF -hendelsen.
4. Vi kobler utløseren til bordet.
Med dette fullfører vi denne opplæringen der vi har sett hvordan vi lager en utløser som vil bli implementert i en funksjon, i tillegg til å vite hvilke hendelser vi kan bruke når vi trenger dem.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng