Johdanto liipaisimiin PL / SQL: ssä

Tietokannan liipaisimet ovat PL / SQL-koodia, jotka suoritetaan tietokannan tapahtumien, kuten INSERT, UPDATE, Alter, Drop, Login, Logoff, jne. Perusteella. Tietokannan triggerit auttavat meitä pitämään SQL-koodit yksinkertaisina ja lyhyinä. Tietokannan liipaisimet ovat hyödyllisiä kaikkien muutosten hallinnassa ja kaikkien muutosten seurannassa Päivitä, Poista, Muuta, Sisäänkirjautuminen, Kirjaudu ulos jne. Tietokannassa, tietokantakaavioissa ja sen taulukoissa.

Meillä on 3 tyyppisiä DB-liipaisimia:

1. DML (Data Manipulation Language): DML laukaisee suorituksen INSERT, UPDATE & DELETE taulukoissa.

2. DDL (Data Definition Language): Tämä liipaisin suoritetaan luomisessa, muuttamisessa, pudottamisessa, analysoinnissa, tarkastuksessa, myöntämisessä jne.

3. Tietokantatapahtuma: DB-tapahtumalaukaisimien suorittaminen LOGON-, LOGOFF-, keskeytys-, tietokanta-käynnistys-, tietokanta-sammutus- ja muiden DB-virheiden perusteella.

Tässä on vielä yksi ominaisuus DB Triggereille:

DB-triggeri: Se on PL / SQL-koodi, joka on linkitetty taulukonäkymään tai DB-tapahtumaan.
Suorittaa DB-toiminnan perusteella

  • Ennen / jälkeen, Lisää, päivitä, poista.
  • Suoritetaan kerran liipaisutapahtumia kohti tai kerran liipaisimen vaikutuksen alaisella rivillä.

Suorita käynnistyksen / sammutuksen / järjestelmävirheen / tiedon kuorman sammutuksen perusteella.

Kuinka luoda triggerejä PL / SQL: ssä?

Tässä ovat seuraavat vaiheet triggerien luomiseen PL / SQL: ssä

1. DML-liipaisimet

Tämä liipaisin on edelleen jaettu kahteen tyyppiin:

  • Liipaisimien jälkeen / Liipaisimille
  • Laukaisimien sijasta

JÄLKEEN laukaisee laukauksen toiminnan käynnistyksen jälkeen. DELETE-, UPDATE- ja INSERT-lauseet ovat esimerkki After-liipaisimista.
INSTEAD (laukaista) laukaisee teot toiminnon sijasta. DELETE-, UPDATE- ja INSERT-lauseet ovat myös osa sitä.

Esimerkki:

Käytämme esimerkkejä työntekijä- ja EmployeeAudit-taulukoista.

SQL-skripti työntekijätaulun luomiseen:

CREATE TABLE Employee
(
Id int Primary Key,
Name nvarchar(30),
Salary int,
Gender nvarchar(10),
DepartmentId int
)
Insert data into Employee table
Insert into Employee values (1, 'Prakash', 5000, 'Male', 3)
Insert into Employee values (2, 'Robert', 3400, 'Male', 2)
Insert into Employee values (3, 'Anji', 6000, 'Female', 1)

Työntekijöiden taulukko

SQL-skripti EmployeeAudit-taulukon luomiseen:

CREATE TABLE EmployeeAudit
(
Id int identity(1, 1) primary key,
AuditData nvarchar(1000)
)

sieppaamme tunnuksen sekä päivämäärän ja kellonajan aina, kun uusi työntekijä lisätään EmployeeAudit-taulukkoon. Tämä on helpoin ohjelma määrittää AFTER TRIGGER INSERT -tapahtumaan.

2. DDL-liipaisimet

Sitä käytetään pääasiassa tietokantakaavion tiettyjen muutosten estämiseen

Syntaksi

CREATE TRIGGER trigger_name
ON (DATABASE | ALL SERVER)
(WITH ddl_trigger_option) FOR (event_type | event_group )
AS (sql_statement)

trigger_name on Määritä liipaisimen määritelty nimi CREATE TRIGGER-avainsanojen jälkeen. Lisäksi sinun ei tarvitse määrittää tietokantakaavaa, koska se ei liity todelliseen tietokantataulukkoon tai näkymään.

Tietokanta | Kaikki palvelimet: Jos liipaisin laukaisee palvelimen laajuisissa tapahtumissa, kuin voimme käyttää kaikkea palvelinta. Käytä tietokantaa, jos liipaisin laukaisee tietokannan laajuisissa tapahtumissa

ddl_trigger_option: Se määrittelee ENCRYPTION- ja / tai EXECUTE AS -lausekkeen.

tapahtumatyyppi | tapahtuma_ryhmä: tapahtuma_ryhmä on ryhmä tapahtumatyyppisiä tapahtumia, kuten DDL_TABLE_EVENTS & tapahtumatyyppi osoittaa DDL-tapahtuman, joka laukaisee laukaisimen, kuten ALTER_TABLE, CREATE_TABLE jne.

Esimerkki:

Käynnistä suoritus vastauksena CREATE_TABLE DDL -tapahtumaan.

CREATE TRIGGER MyFirstTrigger
ON Database
FOR CREATE_TABLE
AS
BEGIN
Print 'New table created'
END

Tarkista, onko liipaisin luotu Database trigger -kansiossa, ja jos et saa sitä, päivitä kansio (Database Trigger).

3. Tietokantatapahtuma

Sitä voidaan käyttää mihin tahansa DB-tapahtumiin, kuten LOGON, LOGOFF, keskeytä, tietokannan käynnistys, tietokannan sammutus

Syntaksi:

CREATE (OR REPLACE) TRIGGER trigger_name
(BEFORE | AFTER) (database_event) ON (DATABASE | SCHEMA)
DECLARE
…some code…
END;

trigger_name on Määritä liipaisimen määritelty nimi CREATE TRIGGER-avainsanojen jälkeen.

tietokanta_tapahtuma tapahtuu periaatteessa tietokannoissa, kuten kirjautumisessa, kirjautumisessa, sammutuksessa jne. Voimme valita, mitä tietokantaa tai kaavaa tämä liipaisin toimii.

Esimerkki: uloskirjautumisen liipaisin

Täällä voimme esitellä LOGOFF-tietokannan tapahtumalaukaisimen. Tämä liipaisin luo yhden tietueen taulukkoon (kirjautumisen), kun joku katkaisee yhteyden.
Tämä liipaisin tallentaa käyttäjän nimen ja katkaisun ajan.

Logoff-taulukon luominen:

create table logoff_table (
who varchar2(30),
when date
);

Lähtösignaalin liipaisimen luominen:

create trigger trg_logoff
before logoff on database
begin
insert into logoff_table values(sys_context('userenv', 'session_user'), sysdate);
end;
/

Tässä yllä olevassa liipaisimessa olemme luoneet Tiggerin seuraamaan minkä tahansa käyttäjän kirjautumista ulos. Tämä liipaisin saa suoritetun kirjautumisen kirjautumaan pois tietokannan käyttäjistä. Logoff-taulukko tallentaa joitain yksityiskohtia käyttäjänimi ja sen uloskirjautumisaika (Voit päättää yksityiskohdat vaatimuksen mukaan).

Samalla tavalla voimme luoda uuden liipaisimen, joka seuraa ja tallentaa kirjautumistiedot tietylle tietokannalle. Tietokantatapahtumien liipaisimet ovat hyödyllisiä vianmäärityksessä.
Kaikki taulukonimet ovat vaatimuskohtaisia, voimme muuttaa niiden nimiä vaatimusten mukaan.

Laukaisimien etu PL / SQL: ssä

  • Hyvä tarkastusketjuille.
  • Hyvä tietojen käsittelemiseen.
  • Ota käyttöön monimutkaiset turvajärjestelmät.
  • Valvo liiketoimintaa koskevia sääntöjä.
  • Estä tietokannan ja kaavion muutokset.
  • PL / SQL-koodi on lyhyempi triggereillä.
  • Seuraa tietokannan, kaavion ja tietokantataulukoiden muutoksia.
  • Toimintotietueiden hallinnasta tietokannassa on apua vianmäärityksessä.
  • Tietokannan muutoksia ei tarvitse tarkistaa manuaalisesti, liipaisin toimii aina itse tietyssä tapahtumassa.

johtopäätös

Tässä on tämä luku, olemme oppineet liipaisintyypeistä, kuten DDL-, DML- ja tietokantatapahtumalaukaisimista. Olemme myös oppineet, kun DDL-liipaisinta voidaan käyttää INSERT-, PÄIVITTÄMINEN, POISTA, jne. Lausekkeet ja DML-liipaisimet on suunniteltu luomiseen, muuttamiseen, pudottamiseen jne.… Tietokantataulukoissa, mutta tietokantatapahtuma laukaisee, kun on kirjautumisen sisäänkirjautumista, Keskeytä, tietokannan käynnistystoiminto suoritetaan tietokannassa.

Kunkin liipaisimen syntaksi on helppo ymmärtää ja se voidaan muuntaa helposti PL / SQL -koodiksi. PL / SQL -ohjelma, kuten Logoff triggerred, on antanut yleiskuvan tietokannan triggerin toiminnasta, jos käyttäjä kirjautuu ulos tietokannastaan. DML Trigger -sovelluksessa olemme osoittaneet, kuinka AFTER Trigger toimii, kun uusi työntekijä on uusi. DDL-liipaisimet ovat hyödyllisiä estämään tietyt muutokset tietokannassa ja skeemassa.

Suositellut artikkelit

Tämä on opas laukaisijoihin PL / SQL: ssä. Tässä keskustellaan siitä, kuinka triggerien luominen PL / SQL: ssä sisältää esimerkkejä ja etuja. Voit myös tarkastella seuraavaa artikkelia.

  1. Kohdistimet PL / SQL-muodossa
  2. CASE-lause PL / SQL: ssä
  3. Mikä on PL / SQL?
  4. PL / SQL-komennot
  5. Ensisijainen avain vs. vieras avain | Suurimmat erot