Uvod v sprožilce v PL / SQL

Sprožilci zbirke podatkov so koda PL / SQL, ki se izvrši na podlagi dogodka v bazi podatkov, kot so INSERT, UPDATE, Alter, Drop, Prijava, odjava, itd. Sprožilci baze podatkov nam pomagajo pri ohranjanju preprostih in kratkih kod SQL. Sprožilci podatkovnih baz so uporabni pri upravljanju vseh sprememb in spremljanju vseh teh sprememb s posodobitvijo, brisanjem, spreminjanjem, prijavo, odjavljanjem itd. V shemah baze podatkov, baze podatkov in njenih tabelah.

Na voljo imamo 3 vrste sprožilcev DB:

1. DML (jezik manipulacije podatkov): sprožilci DML se v tabelah izvajajo VSTAVI, UPDATE & DELETE.

2. DDL (jezik definiranja podatkov): Ta sprožilec se izvede pri Ustvari, Spremeni, Pusti, Analiziraj, Revidiraj, Podelite, itd.

3. Dogodek baze podatkov: Izvedba sprožilcev dogodkov DB na podlagi LOGON, LOGOFF, Suspend, zagon baze podatkov, Izklop podatkovne baze in druge napake DB.

Tu je še ena značilnost sprožilcev DB:

Sprožilec DB: To je koda PL / SQL, povezana s pogledom tabele ali dogodkom DB.
Izvaja se na podlagi dejavnosti DB

  • Pred / pozneje, VNESITE, UPORABI, IZbriši.
  • Izvede se enkrat na sprožitvene dogodke ali enkrat v vrstici, na katero vpliva sprožilec.

Izvedite na podlagi zagona / izklopa / napake sistema / izklopa nalaganja podatkov.

Kako ustvariti sprožilce v PL / SQL?

Tu so naslednji koraki za ustvarjanje sprožilcev v PL / SQL

1. Sprožilci DML

Ta sprožilec je nadalje razdeljen na dve vrsti:

  • Po sprožilcih / Za sprožilce
  • Namesto sprožilcev

PO Sprožitvi sproži po sprožitvi. Izjave DELETE, UPDATE in INSERT so primer sprožilcev After.
INSTEAD of sprožilcev deluje namesto dejanja. Del tega so tudi izjave DELETE, UPDATE in INSERT.

Primer:

Za naše primere bomo uporabili tabele Employee in EmployeeAudit.

SQL skript za ustvarjanje zaposlene tabele:

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)

Tabela zaposlenih

SQL skript za izdelavo tabele EmployeeAudit:

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

bomo zajeli ID in datum in čas, kadar je v tabelo EmployeeAudit dodan nov zaposleni. To je najlažji program, ki ga lahko določite PO TRIGGERU za dogodek VNOS.

2. Sprožilci DDL

Uporablja se predvsem za preprečevanje posebnih sprememb v vaši bazi podatkov

Sintaksa

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

Ime_prožilca je določitev definiranega imena sprožilca po ključnih besedah ​​CREATE TRIGGER. prav tako vam ni treba določiti sheme zbirke podatkov, ker ni povezana z dejansko tabelo ali pogledom baze podatkov.

Baza podatkov | Vsi strežniki: Če se sprožilec sproži na dogodkih, zajetih v strežniku, lahko uporabimo VSE SERVER. Uporabite DATABASE, če se sprožilec sproži na dogodkih, zajetih v bazi podatkov

ddl_trigger_option: Določi ENCRYPTION in / ali EXECUTE AS klavzulo.

dogodek_tip | dogodek_skupina: Skupina dogodkov je skupina dogodkov vrste dogodkov, kot je DDL_TABLE_EVENTS & Tip dogodka označuje dogodek DDL, ki povzroči sprožitev sprožilca, kot so ALTER_TABLE, CREATE_TABLE itd.

Primer:

Izvedba sprožilca kot odgovor na dogodek CREATE_TABLE DDL.

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

Preverite, ali je bil sprožilec ustvarjen v mapi sprožilca baze podatkov in če ga ne dobite, osvežite mapo (sprožilec baze podatkov).

3. Dogodek baze podatkov

Uporablja se lahko za vse dogodke DB, kot so LOGON, LOGOFF, Suspend, zagon baze podatkov, Izklop podatkovne baze

Sintaksa:

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

Ime_prožilca je določitev definiranega imena sprožilca po ključnih besedah ​​CREATE TRIGGER.

baza_event se v osnovi zgodi v bazah podatkov, kot so odjava, odjava, izklop itd. Izberemo lahko, v kateri zbirki podatkov ali shemi bo ta sprožilec deloval.

Primer: sprožilec odjave

Tu lahko pokažemo sprožilec dogodkov baze podatkov LOGOFF. Ta sprožilec bo ustvaril en zapis v tabeli (odjava), ko kdo prekine povezavo.
Ta sprožilec bo zapisal ime uporabnika in čas prekinitve povezave.

Ustvarjanje tabele za odjava:

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

Ustvarjanje sprožilca za odjavo:

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

Tu v zgornjem sprožilcu smo ustvarili Tigger za spremljanje odjave uporabnikov katerega koli uporabnika. Ta sprožilec se bo izvajal po odjavi uporabnikov podatkovne baze po objavi. Tabela za odjava bo shranila nekaj podrobnosti Uporabniško ime in čas za odjavo (podrobnosti lahko določite po potrebi).

Na enak način lahko ustvarimo še en sprožilec, ki bo spremljal in shranjeval podatke o prijavi za katero koli bazo podatkov. Sprožilci dogodkov baze podatkov so koristni pri odpravljanju težav.
Vsa imena tabel so specifična glede na zahteve, njihova imena lahko spremenimo glede na zahteve.

Prednost sprožilcev v PL / SQL

  • Dobro za revizijske sledi.
  • Dobro za obdelavo podatkov.
  • Izvajati zapletene varnostne sheme.
  • Izpolnite poslovna pravila.
  • Prepreči spremembe v zbirki podatkov in shemi.
  • PL / SQL koda je krajši z uporabo sprožilcev.
  • Spremljajte spremembe v tabeli Database, Schema in DB.
  • Upravljanje akcijskih zapisov v zbirki podatkov je koristno pri odpravljanju težav.
  • Spremembe v podatkovni bazi ni treba preverjati ročno, sprožilec vedno sam ukrepa ob določenem dogodku.

Zaključek

Tukaj je to poglavje, spoznali smo vrste sprožilcev, kot so sprožilci dogodkov DDL, DML in Database. Izvedeli smo tudi, medtem ko se lahko sprožilec DDL uporablja za INSERT, UPDATE, DELETE itd. Izjave in sprožilci DML so zasnovani za ustvarjanje, spreminjanje, spuščanje itd… v tabelah baze podatkov, vendar sproži dogodek baze podatkov deluje, kadar obstaja kakršen koli odjava, Zaustavi, zagon baze podatkov, izveden v zbirki podatkov.

Sintaksa vsakega sprožilca je enostavno razumeti in jo je mogoče enostavno pretvoriti v PL / SQL kodo. Program PL / SQL, kot je sprožen Logoff, je dal pregled delovanja sprožilca baze podatkov v primeru, da se kateri koli uporabnik odjavi iz svoje baze podatkov. V DML Triggerju smo pokazali, kako bo AFTER Trigger deloval, ko bo nov vpis katerega koli novega zaposlenega. Sprožilci DDL so uporabni pri preprečevanju kakršnih koli posebnih sprememb v podatkovni bazi in shemi.

Priporočeni članki

To je vodnik za sprožilce v PL / SQL. Tukaj razpravljamo o tem, kako ustvariti sprožilce v PL / SQL s primeri in prednostmi. Lahko pogledate tudi naslednji članek.

  1. Kazalniki v PL / SQL
  2. Stavek CASE v PL / SQL
  3. Kaj je PL / SQL?
  4. PL / SQL ukazi
  5. Primarni ključ v primerjavi s tujim ključem | Najboljše razlike