PostgreSQL

PostgreSQL Luo liipaisin INSERT / UPDATE / DELETE -vaihtoehdon jälkeen

PostgreSQL Luo liipaisin INSERT / UPDATE / DELETE -vaihtoehdon jälkeen
Aina kun määritelty muutostoiminto (SQL INSERT-, UPDATE-, DELETE- tai TRUNCATE-ilmoitus) suoritetaan määritetyssä taulukossa, laukaisin on sarja tapahtumia, jotka suoritetaan automaattisesti. Triggereitä voidaan käyttää asettamaan liiketoimintasääntöjä, todentamaan syötetiedot ja ylläpitämään kirjausketjua. SQL-liipaisimet toteutetaan SQL-muodon mukaisesti. Se sisältää rakenteita, joita käytetään useilla ohjelmointikielillä, joiden avulla voit ilmoittaa paikallisia muuttujia, seurata prosessin kulkua ilmoituksilla, allokoida lauseiden tuloksia muuttujille ja käsitellä virheitä. Lisäksi, kun olet rakentanut liipaisimen jollekin, kuten taulukolle, liipaisin poistetaan heti, kun taulukko on poistettu. Tarkastelemme, miten PostgreSQL-liipaisimet toimivat tällä segmentillä.

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.

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.

5 parasta arcade-peliä Linuxille
Nykyään tietokoneet ovat vakavia koneita, joita käytetään pelaamiseen. Jos et pääse uusiin korkeisiin pisteisiin, tiedät mitä tarkoitan. Tässä viestis...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...
League of Legendsin asentaminen Ubuntu 14 een.04
Jos olet League of Legendsin fani, tämä on sinulle mahdollisuus testata League of Legendsia. Huomaa, että PlayOnLinux tukee LOLia, jos olet linux-käyt...