PostgreSQL

PostgreSQL Opret udløser efter INDSÆT / OPDATER / SLET

PostgreSQL Opret udløser efter INDSÆT / OPDATER / SLET
Hver gang en defineret ændringshandling (SQL INSERT, UPDATE, DELETE eller TRUNCATE-erklæring) udføres på en defineret tabel, er en trigger en række sæt begivenheder, der udføres automatisk. Udløsere kan bruges til at pålægge forretningsregler, godkende inputoplysninger og vedligeholde et revisionsspor. SQL-udløsere implementeres i henhold til SQL-formatet. Det inkluderer strukturer, der bruges i flere programmeringssprog, der giver dig mulighed for at erklære lokale variabler, overvåge processens strømning med erklæringer, tildele udsagnsresultater til variabler og håndtere fejl. Når du desuden konstruerer en trigger til noget som en tabel, fjernes triggeren straks, så snart tabellen er fjernet. Vi ser på, hvordan PostgreSQL Triggers fungerer i hele dette segment.

Syntaks:

Følgende er den enkle syntaks til generering af en trigger:

>> OPRET TRIGGER trigger_name [FØR | EFTER | INSTEAD OF] begivenhedsnavn PÅ tabelnavn [---- Trigger Logic];

Her er forklaringen på ovenstående generelle forespørgsel.

For at forstå udløserkonceptet kort skal du starte PostgreSQL-shell fra applikationerne. Skift server, hvis du vil arbejde på en anden server, ellers skal du trykke på enter fra tastaturet. Tilføj det databasenavn, du vil arbejde på, ellers skal du lade det være, og trykke på Enter. Som du kan se, har vi i øjeblikket arbejdet på port 5432 som standard; du kan også ændre det. Angiv derefter et andet brugernavn end Postgres, hvis du vil arbejde med en anden bruger, eller lad det være tomt og tryk på Enter-knappen. Nu er din kommandoskal klar til brug.

TRIGGER ved INSERT-kommando

Lad os se på eksemplet på en trigger, når INSERT-kommandoen er blevet brugt som en triggerhændelse. Til dette skal vi oprette to nye tabeller, f.eks.g., "Ansætte" og "revision". Tabellen "ansætte" vil indeholde medarbejdernes personlige optegnelser fra en bestemt virksomhed, og tabellen "revision" vil indeholde oplysningerne om, hvornår medarbejderne blev medlem af virksomheden. Forespørgslerne til oprettelse af tabellerne er angivet nedenfor.

>> Opret TABEL ansætte (ID INTEGER IKKE NULL PRIMÆR NØGLE, Navn VARCHAR (100) IKKE NULL, Alder VARCHAR (100) IKKE NULL, Løn VARCHAR (100) IKKE NULL);

>> CREATE TABLE audit (empid INTEGER NOT NULL, entry_date VARCHAR (100) NOT NULL);

Du skal oprette en procedure, der automatisk udføres eller fungerer, når udløseren kaldes. Det vil blive brugt i den næste CREATE TRIGGER-kommando. Fra nedenstående kommando kan du få en idé om, at vi har oprettet en procedure "auditlogfunc ()", som returnerer en trigger som variabel "$ examp_table $". Funktionen begynder med BEGIN-sætningen efterfulgt af INSERT-sætningen. Denne INSERT-sætning indsætter automatisk id og aktuel tidsdato ved hjælp af den indbyggede funktion i "audit" -tabellen og returnerer dette resultat til TRIGGER.

Det er tid til at generere en TRIGGER ved hjælp af CREATE TRIGGER-kommandoen. Vi opretter en trigger med navnet “emp_trig” på bordet “ansæt”. Klausulen AFTER INSERT ON betyder, at denne trigger kun fungerer efter udførelsen af ​​insert-kommandoen. FOR HVER Række betyder ved udførelsen af ​​hver INSERT-kommando, denne trigger kalder og udfører “auditlogfunc ()” -proceduren oprettet lige før.

>> OPRET TRIGGER emp_trig EFTER INDSÆTNING PÅ ansætte FOR HVER RÆKEKØRSELSPROCEDURE auditlogfunc ();

Det er tid til at indsætte nogle data i tabellen "ansæt". Udfør nedenstående INSERT-kommando i skallen.

>> INDSÆT I ANVENDELSE (ID, navn, alder, løn) VÆRDIER ('1', 'Paul', '34', '60000');

Se på tabellen "ansæt". Dataene er tilføjet med succes med INSERT-kommandoen.

Få et glimt af tabellen "revision". Du kan se, det opdateres også på grund af trigger “emp_trig” og auditlogfunc ().

TRIGGER ved UPDATE-kommando

Vi ser nu på et eksempel på en trigger ved hjælp af UPDATE-kommandoen som en triggerhændelse. Vi er nødt til at oprette en ny procedure igen med det andet navn "opdatering" som vist på billedet. Denne procedure vil også indsætte poster i 'revisionstabellen ved opkald.

Opret nu en ny trigger med navnet “update_emp” ved hjælp af CREATE TRIGGER-kommandoen. Dette fungerer kun efter udførelsen af ​​UPDATE-forespørgslen på den anvendte tabel, og det vil kalde proceduren "opdatering".

Opdater tabellen "ansæt" ved at indstille dens id til "2".

Hent optegnelserne i en tabel "ansæt" for at se ændringerne som vedhæftet nedenfor.

Som du kan se på tabellen "revision", er den blevet omorganiseret efterhånden som tabellen "ansætte" blev opdateret.

TRIGGER Ved SLET kommando

Åbn pgAdmin 4 fra applikationer til arbejde på GUI PostgreSQL. Under skemaet "test" finder du en liste over tabeller. Opret en ny tabel "emp" og den samme "audit" -tabel.

Denne gang påkalder vi udløserkommandoen ved hjælp af SLET-kommandoen. Nedenfor er tabellen "emp" med nogle poster.

Her er revisionstabellen med de to foregående opdateringer.

Opret en procedure med navnet "Del ()" for at udløse indsættelsen i "revision" -tabellen ved sletning af posterne fra tabel "emp".

Opret en trigger “del_trig” ved hjælp af CREATE TRIGGER-forespørgslen. Denne trigger udfører proceduren "Del", når der slettes en DELETE-klausul på bordet "emp".

Lad os slette en post fra tabellen "emp", hvor medarbejderens "id" er "5". Det sletter en række fra tabellen "emp".

Hent optegnelser over tabel "emp" og se på det. Du kan se, at rækken er fjernet, hvor "id" var "5".

Uddrag nu "audit" -tabelregistreringerne, og du vil bemærke, at den er blevet opdateret, fordi DELETE-operationen er udført på tabellen "emp".

Konklusion:

Vi har gjort næsten alle vigtige eksempler for at forstå begrebet TRIGGER under udførelse af INSERT-, UPDATE- og SLET-operationer.

Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...