Syntaksi:
Seuraava on yksinkertainen syntaksi liipaisimen luomiseksi:
>> LUO TRIGGER-liipaisimen_nimi [ENNEN | JÄLKEEN | INSTEAD OF] tapahtuman nimi päällä table_name [---- Trigger Logic];Tässä on selitys yllä olevalle yleiselle kyselylle.
- Trigger_name: Laukaisimen nimi
- ENNEN, JÄLKEEN, PAIKALLA: Termit, jotka päättävät, milloin liipaisin olisi aktiivinen
- Tapahtuman nimi: Tapahtuman nimi, joka saattaa laukaista liipaisimen (tämä voi olla joko INSERT, UPDATE tai DELETE)
- Taulukon nimi: Määrittää taulukon, johon liipaisin rakennetaan
Käynnistä PostgreSQL-kuori sovelluksista ymmärtääksesi liipaisukonseptin lyhyesti. Vaihda palvelin, jos haluat työskennellä toisella palvelimella, tai paina Enter-näppäintä. Lisää tietokannan nimi, jota haluat työskennellä, muuten jätä se sellaisenaan ja napauta Enter. Kuten näette, olemme parhaillaan työskentelemässä portilla 5432 oletuksena; voit myös muuttaa sitä. Anna sen jälkeen jokin muu käyttäjänimi kuin Postgres, jos haluat työskennellä toisen käyttäjän kanssa, tai jätä se tyhjäksi ja paina Enter-painiketta. Nyt komentojesi kuori on käyttövalmis.
TRIGGER INSERT -komennon jälkeen
Katsotaanpa esimerkkiä liipaisimesta, kun INSERT-komentoa on käytetty laukaisutapahtumana. Tätä varten meidän on luotava kaksi uutta taulukkoa, e.g., "Palkata" ja "tarkastaa". Taulukko "palkkaa" sisältää työntekijöiden henkilökohtaiset tietueet tietystä yrityksestä ja taulukko "tarkastus" sisältää tiedot siitä, milloin työntekijät liittyivät yritykseen. Taulukoiden luomista koskevat kyselyt on annettu alla.
>> LUO TAULUKKO käyttää (ID INTEGER NOT NULL PRIMARY KEY, Name VARCHAR (100) NOT NULL, Age VARCHAR (100) NOT NULL, Palkka VARCHAR (100) NOT NULL);>> LUO TAULUKON tarkastus (tyhjennä INTEGER NOT NULL, entry_date VARCHAR (100) NOT NULL);
Sinun on luotava menettely, joka suoritetaan automaattisesti tai toimii, kun liipaisinta kutsutaan. Sitä käytetään seuraavassa CREATE TRIGGER -komennossa. Alla olevasta komennosta saat idean, että olemme luoneet menettelyn "auditlogfunc ()", joka palauttaa liipaisimen muuttujana "$ examp_table $". Funktio alkaa BEGIN-lauseella, jota seuraa INSERT-käsky. Tämä INSERT-käsky lisää automaattisen tunnuksen ja nykyisen päivämäärän sisäänrakennetun toiminnon avulla "tarkastus" -taulukkoon ja palauttaa tämän tuloksen TRIGGERille.
On aika luoda TRIGGER CREATE TRIGGER -komennolla. Luomme triggeri nimeltä ”emp_trig” taululle “tööle”. Lause AFTER INSERT ON tarkoittaa, että tämä liipaisin toimii vasta lisäyskomennon suorittamisen jälkeen. JOKA RIVI tarkoittaa, että jokaisen INSERT-komennon suorittamisen yhteydessä tämä liipaisin kutsuu ja suorittaa juuri ennen luotua "auditlogfunc ()" -prosessia.
>> CREATE TRIGGER emp_trig LISÄÄ LISÄÄ KÄYTTÖÖN JOKA RIVILLE TOTEUTUSMENETTELY auditlogfunc ();
On aika lisätä tietoja taulukkoon "palkata". Suorita alla oleva komento INSERT kuoressa.
>> LISÄÄ käyttämään (henkilötunnus, nimi, ikä, palkka) ARVOT ('1', 'Paul', '34', '60000');
Katso taulukko "palkkaa". Tiedot on lisätty onnistuneesti INSERT-komennolla.
Nyt voit vilkaista "tarkastus" -taulukkoa. Voit nähdä, että sitä päivitetään myös laukaisun “emp_trig” ja auditlogfunc () vuoksi.
TRIGGER päivitettäessä komento
Tarkastelemme nyt esimerkkiä liipaisimesta, joka käyttää UPDATE-komentoa laukaisutapahtumana. Meidän on luotava uusi menettely uudella nimellä "päivitys", kuten kuvassa esitetään. Tämä toimenpide lisää myös tietueet 'tarkastus' -taulukkoon pyynnöstä.
Luo nyt uusi laukaisin nimeltä “update_emp” CREATE TRIGGER -komennolla. Tämä toimii vasta sen jälkeen, kun UPDATE-kysely on suoritettu taulukossa, ja se kutsuu menettelyä "päivitys".
Päivitä taulukko "tööle" asettamalla sen tunnukseksi "2".
Hae "taulukko" -tietokannasta nähdäksesi muutokset alla olevan liitteen mukaisesti.
Kuten taulukosta "tarkastus" näet, se on järjestetty uudelleen, kun taulukko "palkkaa" päivitettiin.
TRIGGER komento POISTA
Avaa pgAdmin 4 sovelluksista, jotta voit työskennellä GUI PostgreSQL: n kanssa. "Test" -mallin alla on luettelo taulukoista. Luo uusi taulukko ”emp” ja sama ”audit” taulukko.
Tällä kertaa kutsumme liipaisukomennon DELETE-komennolla. Alla on taulukko “emp” joidenkin tietueiden kanssa.
Tässä on tarkastustaulukko kahdella edellisellä päivityksellä.
Luo toiminto nimeltä Del () käynnistääksesi lisäyksen "audit" -taulukkoon poistaaksesi tietueet taulukosta "emp".
Luo liipaisin “del_trig” Luo TRIGGER-kyselyllä. Tämä laukaisin suorittaa menettelyn "Del", kun jokin DELETE-lause suoritetaan taulukossa "emp".
Poistetaan tietue taulukosta "emp", jossa työntekijän "id" on "5". Se poistaa yhden rivin taulukosta ”emp”.
Hae taulukon ”emp” tietueet ja katso sitä. Voit nähdä, että rivi on poistettu, jos id oli "5".
Pura nyt "audit" -taulukon tietueet ja huomaat, että se on päivitetty, koska DELETE-toiminto on suoritettu taulukossa "emp".
Päätelmä:
Olemme tehneet melkein kaikki olennaiset esimerkit TRIGGER-käsitteen ymmärtämiseksi suorittaessamme INSERT-, UPDATE- ja DELETE-operaatioita.