PostgreSQL

PostgreSQL Ustvari sprožilec po INSERT / UPDATE / DELETE

PostgreSQL Ustvari sprožilec po INSERT / UPDATE / DELETE
Kadar se v definirani tabeli izvede definirano dejanje spremembe (izjava SQL INSERT, UPDATE, DELETE ali TRUNCATE), je sprožilec niz nizov dogodkov, ki se izvedejo samodejno. Sprožilci se lahko uporabljajo za vsiljevanje poslovnih pravil, preverjanje pristnosti vhodnih informacij in vzdrževanje revizijske sledi. Sprožilci SQL se izvajajo v skladu s formatom SQL. Vključuje strukture, ki se uporabljajo v več programskih jezikih in vam omogočajo deklariranje lokalnih spremenljivk, spremljanje poteka procesa z deklaracijami, dodelitev rezultatov stavkov spremenljivkam in ravnanje z napakami. Poleg tega, ko sestaviš sprožilec za nekaj, na primer tabelo, se sprožilec takoj odstrani, takoj ko je tabela odstranjena. Ogledali si bomo, kako v tem segmentu delujejo sprožilci PostgreSQL.

Sintaksa:

Sledi preprosta sintaksa za generiranje sprožilca:

>> USTVARI TRIGGER ime_prožilca [PRED | PO | NAMESTO] ime-dogodka NA ime_tabele [---- Sprožilna logika];

Tu je razlaga zgornje splošne poizvedbe.

Če želite na kratko razumeti koncept sprožilca, iz aplikacij zaženite lupino PostgreSQL. Če želite delati na drugem strežniku, zamenjajte strežnik ali pa pritisnite tipko Enter na tipkovnici. Dodajte ime baze podatkov, s katero želite delati, drugače jo pustite, kot je, in tapnite enter. Kot lahko vidite, trenutno privzeto delamo na vratih 5432; lahko tudi spremenite. Po tem navedite uporabniško ime, ki ni Postgres, če želite delati z drugim uporabnikom, ali pa ga pustite prazno in pritisnite gumb Enter. Zdaj je vaša ukazna lupina pripravljena za uporabo.

TRIGGER ob ukazu INSERT

Oglejmo si primer sprožilca, ko je bil ukaz INSERT uporabljen kot dogodek sprožilca. Za to moramo ustvariti dve novi tabeli, npr.g., „Zaposliti“ in „revidirati“. Tabela "zaposli" bo vsebovala osebne evidence zaposlenih iz določenega podjetja, tabela "revizija" pa informacije o tem, kdaj so se zaposleni pridružili podjetju. Poizvedbe za ustvarjanje tabel so podane spodaj.

>> USTVARI MIZO zaposli (ID INTEGER NOT NULL PRIMARNI KLJUČ, Ime VARCHAR (100) NOT NULL, Age VARCHAR (100) NOT NULL, Plača VARCHAR (100) NOT NULL);

>> USTVARI TABELO revizije (empid INTEGER NOT NULL, entry_date VARCHAR (100) NOT NULL);

Ustvariti morate postopek, ki se bo samodejno izvedel ali deloval, ko bo poklican sprožilec. Uporabljen bo v naslednjem ukazu CREATE TRIGGER. Iz spodnjega ukaza lahko dobite idejo, da smo ustvarili postopek “auditlogfunc ()”, ki bo vrnil sprožilec kot spremenljivko “$ examp_table $”. Funkcija se začne s stavkom BEGIN, čemur sledi stavek INSERT. Ta stavek INSERT vstavi samodejni id in trenutni časovni datum z uporabo vgrajene funkcije v tabelo "audit" in vrne ta rezultat TRIGGER.

Čas je, da z ukazom CREATE TRIGGER ustvarite TRIGGER. Ustvarimo sprožilec z imenom "emp_trig" v tabeli "zaposli". Klavzula AFTER INSERT ON pomeni, da bo ta sprožilec deloval šele po izvedbi ukaza za vstavljanje. ZA VSAK RED pomeni, da bo ob sprožitvi vsakega ukaza INSERT ta sprožilec poklical in izvedel postopek »auditlogfunc ()«, ustvarjen tik.

>> USTVARI TRIGGER emp_trig PO VSTAVITVI VKLJUČI zaposli ZA VSAK REDNI IZVEDBENI POSTOPEK auditlogfunc ();

Čas je, da v tabelo vstavimo nekaj podatkov "zaposli". Izvedite spodnji ukaz INSERT v lupini.

>> INSERT INTO zaposli (ID, ime, starost, plača) VREDNOSTI ('1', 'Paul', '34', '60000');

Oglejte si tabelo "zaposli". Podatki so bili uspešno dodani z ukazom INSERT.

Zdaj si oglejte tabelo "revizija". Vidite, posodobljen je tudi zaradi sprožilca “emp_trig” in auditlogfunc ().

TRIGGER ob ukazu UPDATE

Zdaj si bomo ogledali primer sprožilca, ki uporablja ukaz UPDATE kot dogodek sprožilca. Ponovno moramo ustvariti nov postopek z drugačnim imenom »posodobitev«, kot je predstavljeno na sliki. Ta postopek bo tudi vključil zapise v tabelo "revizija" na poziv.

Zdaj ustvarite nov sprožilec z imenom "update_emp" z uporabo ukaza CREATE TRIGGER. To bo delovalo šele po izvedbi poizvedbe UPDATE na tabeli zaposli in bo postopek imenovalo »update«.

Posodobite tabelo »zaposli«, tako da njen ID nastavite na »2«.

Pridobite zapise tabele "zaposli", da si ogledate spremembe, kot je priloženo spodaj.

Kot lahko vidite na tabeli "revizija", je bila s posodobitvijo tabele "zaposli" reorganizirana.

TRIGGER ob ukazu DELETE

Odprite pgAdmin 4 iz aplikacij za delo na GUI PostgreSQL. Pod shemo "test" boste našli seznam tabel. Ustvarite novo tabelo "emp" in isto tabelo "revizija".

Tokrat bomo prek ukaza DELETE poklicali ukaz sprožilca. Spodaj je tabela "emp" z nekaj zapisi.

Tu je revizijska tabela s prejšnjima dvema posodobitvama.

Ustvarite postopek z imenom "Del ()", da sprožite vstavljanje v tabelo "audit" po brisanju zapisov iz tabele "emp".

Ustvarite sprožilec "del_trig" z uporabo poizvedbe CREATE TRIGGER. Ta sprožilec bo izvedel postopek “Del”, ko bo v tabeli “emp” izveden nek člen DELETE.

Izbrišemo zapis iz tabele "emp", kjer je "id" zaposlenega "5". Izbriše eno vrstico iz tabele "emp".

Pridobite zapise tabele "emp" in si jih oglejte. Ogledate si lahko, da je bila vrstica odstranjena, kjer je bil »id« »5«.

Zdaj izvlecite zapise tabele “audit” in opazili boste, da so bili posodobljeni, ker je bila na tabeli “emp” izvedena operacija DELETE.

Zaključek:

Naredili smo skoraj vse bistvene primere za razumevanje koncepta TRIGGER med izvajanjem operacij INSERT, UPDATE in DELETE.

Microsoft Sculpt Touch Wireless Mouse Review
Pred kratkim sem prebral o Microsoftov kiparski dotik brezžično miško in se odločil za nakup. Potem ko sem ga nekaj časa uporabljal, sem se odločil, d...
Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...