Sissejuhatus päästikutesse PL / SQL-is

Andmebaasi päästikud on PL / SQL-kood, mida käivitatakse andmebaasisündmuse, näiteks INSERT, UPDATE, Alter, Drop, Login, Logoff jne põhjal. Andmebaasi päästikud aitavad meil hoida SQL-koode lihtsate ja lühikestena. Andmebaasi päästikud on kasulikud kõigi muudatuste haldamisel ja nende muutuste jälgimisel, kasutades andmebaasi, andmebaasi skeemide ja selle tabelite värskendusi, kustutusi, muudatusi, sisselogimist, väljalogimist jne.

Meil on 3 tüüpi DB-käivitajaid:

1. DML (andmete manipuleerimise keel): DML käivitab tabeli INSERT, UPDATE & DELETE käivitamise.

2. DDL (Data Definition Language): see päästik käivitatakse loomisel, muutmisel, tühistamisel, analüüsimisel, auditeerimisel, toetuse andmisel jne.

3. Andmebaasi sündmus: DB sündmuste päästike käivitamine, mis põhinevad LOGON, LOGOFF, Suspend, Database startup, Database Shutdown ja muud DB vead.

Siin on veel üks DB Triggersi omadus:

DB-käivitaja: see on PL / SQL-kood, mis on seotud tabelivaate või DB-sündmusega.
Käivitatakse DB tegevuse alusel

  • Enne / pärast INSERT, UPDATE, DELETE.
  • Teostatakse üks kord käivitatavate sündmuste kohta või üks kord päästiku poolt mõjutatud rea kohta.

Teostamine põhineb käivitamisel / väljalülitamisel / süsteemi vigadel / andmekoormuse väljalülitamisel.

Kuidas luua käivitajaid PL / SQL-is?

PL / SQL-is päästikute loomiseks tehke järgmist

1. DML-käivitajad

See päästik jaguneb veel kahte tüüpi:

  • Pärast päästikuid / päästikute jaoks
  • Päästikute asemel

PÄRAST päästikut vallandub pärast tegevuse käivitamist. Lausete kustutamine, värskendamine ja sisestamine on näide päästikute kohta.
INSTEAD (päästik) käivitab tegevuse asemel toimingud. Sellesse kuuluvad ka väljavõtted Kustuta, Uuenda ja Sisesta.

Näide:

Oma näidete jaoks kasutame tabeleid Employee ja EmployeeAudit.

SQL-skript töötajate tabeli loomiseks:

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)

Töötajate tabel

SQL-skript tabeli EmployeeAudit loomiseks:

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

jäädvustame ID ning kuupäeva ja kellaaja iga kord, kui tabelisse EmployeeAudit lisatakse uus töötaja. See on lihtsaim programm, mille abil saab sündmuse INSERT määratleda AFTER TRIGGER.

2. DDL-i päästikud

Seda kasutatakse peamiselt andmebaasiskeemi konkreetsete muudatuste ärahoidmiseks

Süntaks

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

päästiku_nimi on, et täpsustada päästiku määratletud nimi pärast CREATE TRIGGER märksõnu. samuti ei pea te andmebaasi skeemi määrama, kuna see pole seotud tegeliku andmebaasi tabeli või vaatega.

Andmebaas | Kõik serverid: kui päästik käivitatakse serveri ulatusega sündmustel, siis ei saa me kasutada KÕIKI SERVERI. Kasutage andmebaasi DATABASE, kui päästik käivitatakse andmebaasi ulatusega sündmustel

ddl_trigger_option: see määratleb ENCRYPTION ja / või EXECUTE AS klausli.

sündmus_tüüp | event_group: event_group on sündmuse_tüübi sündmuste rühm, näiteks DDL_TABLE_EVENTS & event_type tähistab DDL-i sündmust, mis põhjustab päästiku tule, näiteks ALTER_TABLE, CREATE_TABLE jne.

Näide:

Käivitage täitmine vastuseks sündmusele CREATE_TABLE DDL.

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

Kontrollige, kas päästik on loodud kausta Database trigger ja kui te seda ei saa, siis värskendage kausta (Database Trigger).

3. Sündmus andmebaasis

Seda saab kasutada selliste DB sündmuste jaoks nagu LOGON, LOGOFF, Peata, Andmebaasi käivitamine, Andmebaasi väljalülitamine

Süntaks:

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

päästiku_nimi on, et täpsustada päästiku määratletud nimi pärast CREATE TRIGGER märksõnu.

andmebaasi_üritus toimub põhimõtteliselt andmebaasides nagu väljalogimine, sisselogimine, väljalülitamine jne. Saame valida, millises andmebaasis või skeemis see päästik töötab.

Näide: väljalogimise päästik

Siin saame demonstreerida andmebaasi LOGOFF sündmuste käivitajat. See päästik loob tabeli (väljalogimise) ühe kirje, kui keegi katkestab ühenduse.
See päästik registreerib kasutaja nime ja ühenduse katkestamise aja.

Väljalogimistabeli loomine:

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

Logi välja päästiku loomine:

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

Ülaltoodud päästikus oleme loonud tiigri, et jälgida iga kasutaja väljalogimist. See päästik saab andmebaasi kasutajatest välja logitud postituse. Väljalogimistabelisse salvestatakse mõned üksikasjad Kasutajanimi ja väljalogimise aeg (Üksikasju saate otsustada vastavalt nõudele).

Samamoodi saame luua veel ühe päästiku, mis jälgib ja salvestab iga konkreetse andmebaasi sisselogimisandmeid. Andmebaasi sündmuste päästikud on abiks tõrkeotsingul.
Kõik tabelite nimed on nõudepõhised, saame nende nimesid vastavalt nõuetele muuta.

Triggerite eelis PL / SQL-is

  • Hea kontrolljälgede jaoks.
  • Hea andmetega manipuleerimiseks.
  • Kehtestage keerulised turvaskeemid.
  • Ettevõtluseeskirjade jõustamine.
  • Takistage muudatusi andmebaasis ja skeemis.
  • PL / SQL-kood on päästikute abil lühem.
  • Jälgige andmebaasi, skeemi ja DB-tabelite muudatusi.
  • Toimingukirjete haldamine andmebaasis on abiks tõrkeotsingul.
  • Andmebaasis tehtud muudatusi pole vaja käsitsi kontrollida, päästik võtab konkreetse sündmuse esinemise korral alati ise meetmeid.

Järeldus

Selles peatükis oleme õppinud selliste päästikutüüpide kohta nagu DDL, DML ja andmebaasi sündmuste päästikud. Oleme õppinud ka seda, kuidas DDL-i päästikut saab kasutada INSERT-i, UPDATE, DELETE jne jaoks. Avaldused ja DML-päästikud on loodud andmebaasitabelites loomiseks, muutmiseks, tühistamiseks jne … Peata, andmebaasis käivitatakse toimingud andmebaasis.

Iga päästiku süntaks on hõlpsasti mõistetav ja seda saab hõlpsalt teisendada PL / SQL-koodiks. PL / SQL-programm, näiteks käivitatud väljalogimine, on andnud ülevaate sellest, kuidas andmebaasi päästik töötab, kui mõni kasutaja oma andmebaasist välja logib. DML Triggeris oleme demonstreerinud, kuidas AFTER Trigger töötab, kui iga uus töötaja on uue sisenemise saanud. DDL-i päästikud on kasulikud andmebaasi ja skeemi konkreetsete muudatuste ärahoidmiseks.

Soovitatavad artiklid

See on juhend käivitajate kohta PL / SQL-is. Siin räägime näidetest, kuidas PL / SQL-is käivitajaid luua koos näidete ja eelistega. Võite vaadata ka järgmist artiklit.

  1. Kursorid PL / SQL-is
  2. CASE avaldus PL / SQL-is
  3. Mis on PL / SQL?
  4. PL / SQL käsud
  5. Primaarvõti vs võõrvõti | Peamised erinevused