Uvod u okidače u PL / SQL

Okidači baze podataka su PL / SQL kôd koji se izvršava na temelju događaja u bazi podataka kao što su INSERT, UPDATE, Alter, Drop, Prijava, odjava, itd. Okidači baze podataka pomažu nam u održavanju jednostavnih i kratkih SQL kodova. Okidači baze podataka korisni su za upravljanje svim promjenama i praćenje svih tih promjena pomoću Ažuriranja, Brisanja, Promjene, prijave, odjave, itd. U shemama Database, Database i njegovim tablicama.

Imamo 3 vrste DB okidača:

1. DML (jezik manipulacije podacima): DML okidači se pokreću INSERT, UPDATE & DELETE u tablicama.

2. DDL (jezik definicije podataka): ovaj se okidač pokreće na Create, Alter, Drop, Analizira, Audit, Grant, itd.

3. Događaj baze podataka: Izvršavanje okidača DB događaja na temelju LOGON, LOGOFF, Suspend, pokretanje baze podataka, Isključivanje baze podataka i ostale DB pogreške.

Evo još jedne karakteristike DB okidača:

Okidač DB: To je PL / SQL kôd povezan s prikazom tablice ili DB događajem.
Izvodi se na temelju DB aktivnosti

  • Prije i poslije INSERT, UPDATE, DELETE.
  • Izvršava se jednom po događajima pokretanja ili jednom u retku na koje je okidač utjecao.

Izvršite na temelju pokretanja / isključivanja / pogreške sustava / isključivanja podataka.

Kako stvoriti okidače u PL / SQL?

Evo sljedećih koraka za stvaranje okidača u PL / SQL

1. DML okidači

Ovaj okidač je dalje podijeljen u dvije vrste:

  • Nakon okidača / Za okidače
  • Umjesto okidača

NAKON što se aktivira nakon aktiviranja. Izjave DELETE, UPDATE i INSERT su primjer pokretača iza.
UMJESTO pokretača djeluje umjesto akcije. Izjave DELETE, UPDATE i INSERT također su dio toga.

Primjer:

Za naše ćemo primjere koristiti tablice Employee and EmployeeAudit.

SQL skripta za kreiranje tablice zaposlenika:

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)

Tablica zaposlenika

SQL skripta za izradu tablice EmployeeAudit:

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

snimit ćemo ID i datum i vrijeme Kad god je u tablicu EmployeeAudit dodan novi zaposlenik. To je najlakši program za definiranje NAKON TRIGGERA za INSERT događaj.

2. DDL okidači

Koristi se uglavnom za sprečavanje određenih promjena u vašoj bazi podataka

Sintaksa

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

ime_kretača je da odredite definirano ime okidača nakon ključnih riječi CREATE TRIGGER. također, ne morate specificirati shemu baze podataka jer nije povezana sa stvarnom tablicom ili prikazom baze podataka.

Baza podataka | Svi poslužitelji: Ako se okidač aktivira na događajima obuhvaćenim poslužiteljem, tada možemo upotrijebiti SVI SERVER. Upotrijebite DATABASE ako se okidač aktivira na događajima obuhvaćenim podacima baze podataka

ddl_trigger_option: Određuje ENCRYPTION i / ili EXECUTE AS klauzulu.

događaj_tip | event_group: event_group je skup događaja događaja_reda poput DDL_TABLE_EVENTS & type_type ukazuje na DDL događaj koji uzrokuje paljenje okidača kao što su, ALTER_TABLE, CREATE_TABLE, itd.

Primjer:

Izvođenje okidača kao odgovor na CREATE_TABLE DDL događaj.

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

Provjerite je li okidač kreiran u mapi okidača baze podataka, a ako ga ne dobijete, osvježite mapu (okidač baze podataka).

3. Događaj baze podataka

Može se koristiti za bilo koje DB događaje kao što su LOGON, LOGOFF, Suspend, pokretanje baze podataka, Isključivanje baze podataka

Sintaksa:

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

ime_kretača je da odredite definirano ime okidača nakon ključnih riječi CREATE TRIGGER.

database_event se u osnovi događa u bazama podataka kao što su odjava, odjava, isključivanje itd. Možemo odabrati na kojoj će se bazi podataka ili shemi raditi ovaj okidač.

Primjer: okidač odjave

Ovdje možemo demonstrirati okidač događaja baze podataka LOGOFF. Ovaj okidač stvorit će jedan zapis u tablici (odjava) kada netko prekine vezu.
Ovaj okidač bilježi ime korisnika i vrijeme prekida veze.

Izrada tablice za odjava:

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

Izrada pokretača odjave:

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

Ovdje, u gore navedenom okidaču, stvorili smo Tigger za nadgledanje Logoff-a bilo kojeg korisnika. Ovaj će se okidač izvršiti odjavom korisnika baza podataka nakon odjave. Tablica odjave će pohranjivati ​​neke detalje Korisničko ime i vrijeme je za odjavu (Možete odrediti detalje prema zahtjevu).

Na isti način, možemo stvoriti još jedan okidač koji će pratiti i pohranjivati ​​detalje o prijavi za bilo koju određenu bazu podataka. Okidači događaja baze podataka korisni su za rješavanje problema.
Svi nazivi tablica su specifični za zahtjev, a možemo promijeniti njihova imena prema zahtjevima.

Prednost okidača u PL / SQL

  • Dobro za revizijske zapise.
  • Dobro za manipuliranje podacima.
  • Provedite složene sigurnosne sheme.
  • Provedite pravila poslovanja.
  • Spriječite promjene u bazi podataka i shemi.
  • PL / SQL kod kraći je pomoću okidača.
  • Pratite promjene u bazi podataka, shema i DB tablica.
  • Upravljanje akcijskim zapisima u bazi podataka korisno je za rješavanje problema.
  • Ne morate ručno provjeravati promjene u bazi podataka, okidač uvijek sam djeluje na određenom događaju.

Zaključak

Evo ovog poglavlja, saznali smo o vrstama okidača poput DDL, DML i okidača događaja Database. Također smo naučili dok se DDL okidač može koristiti za INSERT, UPDATE, DELETE itd. Izjave i DML okidači dizajnirani su za kreiranje, izmjenu, ispadanje itd. Unutar tablica baze podataka, ali aktiviranje događaja baze podataka djeluje kada postoji odjava s prijavom, Obustavi, Pokretanje radnje baze podataka izvedeno u bazi podataka.

Sintaksu svakog okidača lako je razumjeti i može se lako pretvoriti u PL / SQL kôd. PL / SQL program poput pokretanja Logoffa dao je pregled kako će okidač baze podataka raditi u slučaju da se neki korisnik odjavi iz svoje baze podataka. U DML okidaču pokazali smo kako će NAKON Trigera djelovati nakon što dođe do novog ulaska bilo kojeg novog zaposlenika. DDL okidači su korisni u sprečavanju bilo kakvih posebnih promjena u bazi podataka i shemi.

Preporučeni članci

Ovo je vodič za pokretače u PL / SQL. Ovdje smo raspravljali o tome kako stvoriti okidače u PL / SQL s primjerima i prednostima. Možete pogledati i sljedeći članak.

  1. Kursori u PL / SQL
  2. Izjava CASE u PL / SQL
  3. Što je PL / SQL?
  4. PL / SQL naredbe
  5. Primarni ključ vs strani ključ | Glavne razlike

Kategorija: