Süntaks:
Järgmine on päästiku genereerimise lihtne süntaks:
>> CREATE TRIGGER trigger_name [ENNE | PÄRAST | INSTEAD OF] sündmuse nimi SEES tabeli_nimi [---- Trigger Logic];Siin on ülaltoodud üldise päringu selgitus.
- Trigger_name: Päästiku nimi
- ENNE, PÄRAST, ASEMEL: Tingimused, mis otsustavad, millal päästik on aktiivne
- Sündmuse_nimi: Käivitise käivitava esinemise pealkiri (see võib olla kas INSERT või UPDATE või DELETE)
- Tabeli nimi: Määrab tabeli, millele päästik ehitatakse
Käivituskontseptsiooni lühiajaliseks mõistmiseks käivitage rakendustest PostgreSQL-i kest. Kui soovite töötada mõnes teises serveris, vahetage serverit või vajutage klaviatuurilt sisestusklahvi. Lisage andmebaasi nimi, millega soovite töötada, vastasel juhul jätke see selliseks nagu see on ja puudutage sisestusklahvi. Nagu näete, töötame praegu vaikimisi pordil 5432; saate seda ka muuta. Pärast seda sisestage muu kasutajanimi kui Postgres, kui soovite töötada teise kasutajaga, või jätke see tühjaks ja vajutage sisestusklahvi. Nüüd on teie käsukoor kasutamiseks valmis.
TRIGGER INSERT käsk
Vaatame päästiku näidet, kui päästiku sündmusena on kasutatud käsku INSERT. Selleks peame looma kaks uut tabelit, nt.g., "Tööle" ja "audit". Tabel "tööle" sisaldab töötajate isiklikke andmeid konkreetsest ettevõttest ja tabel "audit" sisaldab teavet selle kohta, millal töötajad ettevõttega liitusid. Tabelite loomise päringud on toodud allpool.
>> LOE TABEL, kus töötab (ID INTEGER EI NULL PÕHIVÕTI, nimi VARCHAR (100) NOT NULL, vanus VARCHAR (100) NOT NULL, palk VARCHAR (100) NOT NULL);>> CREATE TABLE audit (tühjendage INTEGER NOT NULL, entry_date VARCHAR (100) NOT NULL);
Peate looma protseduuri, mis käivitatakse automaatselt või töötab päästiku kutsumisel. Seda kasutatakse järgmises CREATE TRIGGER käsus. Allolevast käsust saate aimu, et oleme loonud protseduuri “auditlogfunc ()”, mis tagastab päästiku muutujana “$ examp_table $”. Funktsioon algab klausliga BEGIN, millele järgneb lause INSERT. See käsk INSERT sisestab sisseehitatud funktsiooni abil automaatse ID ja praeguse kuupäeva kuupäevale “audit” ning tagastab selle tulemuse TRIGGER-le.
On aeg luua TRIGGER käsu CREATE TRIGGER abil. Loome tabelisse "tööle" päästiku nimega "emp_trig". Klausel AFTER INSERT ON tähendab, et see päästik töötab alles pärast käsu insert sisestamist. IGAS RIDAS tähendab iga käsu INSERT täitmisel see päästik ja käivitab vahetult enne loodud protseduuri “auditlogfunc ()”.
>> CREATE TRIGGER emp_trig PÄRAST INSERT-i sisestamist tööle rakendamiseks IGA RIDA TÄITMISE MENETLUS auditlogfunc ();
On aeg sisestada mõned andmed tabelisse "tööle". Käivitage kestas järgmine käsk INSERT.
>> INSERT INTO tööle (ID, nimi, vanus, palk) VÄÄRTUSED ('1', 'Paul', '34', '60000');
Heitke pilk tabelile "tööle". Andmed on edukalt lisatud käsuga INSERT.
Nüüd heitke pilk auditi tabelile. Näete, et seda värskendatakse ka käivitades “emp_trig” ja auditlogfunc ().
TRIGGER käsku UUENDAMISEL
Vaatame nüüd päästiku näidet, mis kasutab käsku UPDATE päästiku sündmusena. Peame uuesti looma uue protseduuri, millel on erinev nimi "update", nagu pildil näidatud. See protseduur lisab kõne korral ka kirjed tabelisse „audit”.
Nüüd looge käsuga CREATE TRIGGER uus päästik nimega “update_emp”. See töötab ainult pärast seda, kui tabelis UPDATE päring on täidetud, ja see kutsub protseduuri "update".
Värskendage tabelit “tööle”, määrates selle ID väärtuseks “2”.
Allpool lisatud muudatuste vaatamiseks tooge tabeli kirjed "tööle".
Nagu tabelis „audit” näha, on see ümber korraldatud, kuna tabelit „tööle” ajakohastati.
TRIGGER käsku Kustuta
Avage pgAdmin 4 rakendustest, et töötada GUI PostgreSQL-is. Skeemi “test” alt leiate tabelite loendi. Looge uus tabel “emp” ja sama “audit” tabel.
Seekord kutsume päästiku käsu käsuga DELETE. Allpool on tabel “emp” koos mõne kirjega.
Siin on kahe eelmise värskendusega audititabel.
Looge protseduur nimega “Del ()”, et käivitada sisestamine tabelisse “audit”, kui kustutate kirjed tabelist “emp”.
Looge päästik „del_trig”, kasutades päringut CREATE TRIGGER. See päästik käivitab protseduuri “Del”, kui tabelis “emp” täidetakse mõni kustutusklausel.
Kustutame tabelist „emp” kirje, kus töötaja „id” on „5”. See kustutab tabelist „emp” ühe rea.
Toogige tabeli “emp” kirjed ja vaadake seda. Saate vaadata, et rida on eemaldatud, kui „id” oli „5”.
Eemaldage nüüd tabeli “audit” kirjed ja märkate, et seda on värskendatud, kuna tabelis “emp” on tehtud KUSTUTAMISE toiming.
Järeldus:
Oleme teinud peaaegu kõik olulised näited TRIGGERi mõiste mõistmiseks operatsioonide INSERT, UPDATE ja DELETE teostamisel.