Úvod do spúšťača v PL / SQL

Spúšťače databázy sú kód PL / SQL, ktorý sa vykonáva na základe udalosti v databáze, napríklad INSERT, UPDATE, Alter, Drop, Login, Logff atď. Spúšťače databázy nám pomáhajú udržiavať jednoduché a krátke kódy SQL. Spúšťače databázy sú užitočné pri spravovaní všetkých zmien a sledovaní všetkých týchto zmien pomocou aktualizácie, odstránenia, zmeny, prihlásenia, odhlásenia atď. V databáze, databázových schémach a jej tabuľkách.

Máme 3 typy spúšťačov DB:

1. DML (Data Manipulation Language): Spúšťače DML sa vykonávajú v INSERT, UPDATE & DELETE v tabuľkách.

2. DDL (Data Definition Language): Tento spúšťač sa spúšťa pri Create, Alter, Drop, Analyzate, Audit, Grant atď.

3. Databázová udalosť: Vykonanie spúšťačov udalostí DB na základe LOGON, LOGOFF, Suspend, spustenia databázy, vypnutia databázy a ďalších chýb DB.

Tu je ešte jedna charakteristika DB Triggers:

Spúšťač DB: Je to kód PL / SQL spojený s tabuľkovým zobrazením alebo udalosťou DB.
Vykonáva sa na základe aktivity DB

  • Pred / po VLOŽIŤ, AKTUALIZOVAŤ, ODSTRÁNIŤ.
  • Vykonáva sa raz na spúšťacie udalosti alebo raz na riadok ovplyvnený spúšťačom.

Vykonajte na základe spustenia / vypnutia / systémovej chyby / vypnutia načítania údajov.

Ako vytvoriť spúšťače v PL / SQL?

Tu sú nasledujúce kroky na vytvorenie spúšťačov v PL / SQL

1. Spúšťače DML

Tento spúšťač sa ďalej delí na dva typy:

  • Po spustení / pre spúšťače
  • Namiesto spúšťačov

PO POŽIARU spúšť sa spustí po spustení akcie. Príkazy DELETE, UPDATE a INSERT sú príkladom spúšťacích prvkov After.
INSTEAD Of triggers namiesto akcie. Súčasťou sú aj príkazy DELETE, UPDATE a INSERT.

Príklad:

Na naše príklady použijeme tabuľky Zamestnanec a ZamestnanecAudit.

SQL Script na vytvorenie tabuľky zamestnancov:

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)

Tabuľka zamestnancov

SQL Script na vytvorenie tabuľky EmployeeAudit:

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

zachytíme ID a dátum a čas zakaždým, keď sa do tabuľky EmployeeAudit pridá nový zamestnanec. Toto je najjednoduchší program na definovanie AFTER TRIGGER pre udalosť INSERT.

2. Spúšťače DDL

Používa sa hlavne na zabránenie konkrétnym zmenám v databáze

syntax

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

trigger_name je Špecifikovať definovaný názov spúšťača po kľúčových slovách CREATE TRIGGER. tiež nemusíte špecifikovať databázovú schému, pretože nesúvisí so skutočnou databázovou tabuľkou alebo zobrazením.

Databáza All Server: Ak spúšť aktivuje udalosti zamerané na server, potom môžeme použiť ALL SERVER. Použite DATABASE, ak sa spúšť spustí pri udalostiach zameraných na databázu

ddl_trigger_option: Špecifikuje klauzulu ENCRYPTION a / alebo EXECUTE AS.

event_type | event_group: Event_group je skupina udalostí event_type, ako je DDL_TABLE_EVENTS & Event_type označuje udalosť DDL, ktorá spôsobuje spustenie spúšťača, napríklad ALTER_TABLE, CREATE_TABLE atď.

Príklad:

Spustenie spustenia v reakcii na udalosť CREATE_TABLE DDL.

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

Skontrolujte, či bol spúšťač vytvorený v priečinku Spúšťač databázy a či ho nemáte, obnovte priečinok (Database Trigger).

3. Databázová udalosť

Môže byť použitý pre akékoľvek udalosti DB, ako sú LOGON, LOGOFF, Suspend, Spustenie databázy, Vypnutie databázy

syntaxe:

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

trigger_name je Špecifikovať definovaný názov spúšťača po kľúčových slovách CREATE TRIGGER.

database_event sa v podstate vyskytuje v databázach, ako je odhlásenie, prihlásenie, vypnutie atď. Môžeme si vybrať, ktorá databáza alebo schéma bude toto spúšťač pracovať.

Príklad: Aktivácia odhlásenia

Tu môžeme demonštrovať spúšťač udalostí databázy LOGOFF. Tento spúšťač vytvorí jeden záznam v tabuľke (odhlásenie), keď sa niekto odpojí.
Tento spúšťač zaznamená meno používateľa a čas odpojenia.

Vytvorenie odhlásenej tabuľky:

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

Vytvorenie spúšťača odhlásenia:

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

V tomto spúšťači vyššie sme vytvorili program Tigger na sledovanie odhlásenia ktoréhokoľvek používateľa. Tento spúšťač bude vykonaný po odhlásení používateľov databázy. Tabuľka odhlásenia uloží niektoré podrobnosti Meno používateľa a je čas odhlásenia (Podrobnosti môžete určiť podľa požiadavky).

Rovnakým spôsobom môžeme vytvoriť ďalší spúšťač, ktorý bude monitorovať a ukladať prihlasovacie údaje pre ľubovoľnú konkrétnu databázu. Pri riešení problémov sú užitočné spúšťače udalostí databázy.
Všetky názvy tabuliek sú špecifické pre konkrétne požiadavky, ich názvy môžeme meniť podľa požiadaviek.

Výhoda spúšťačov v PL / SQL

  • Dobré pre audítorské chodníky.
  • Dobré pre manipuláciu s údajmi.
  • Presadzovať komplexné bezpečnostné systémy.
  • Presadzovať obchodné pravidlá.
  • Zabráňte zmenám v databáze a schéme.
  • Kód PL / SQL je pomocou spúšťačov kratší.
  • Sledujte zmeny v tabuľkách databázy, schémy a databázy.
  • Pri odstraňovaní problémov je užitočná správa záznamov o akciách v databáze.
  • Nie je potrebné manuálne kontrolovať zmeny v databáze, spúšť vždy vykoná akciu sám pri konkrétnom výskyte udalosti.

záver

V tejto kapitole sme sa dozvedeli o typoch spúšťačov, ako sú spúšťače DDL, DML a spúšťače udalostí databázy. Dozvedeli sme sa tiež, že spúšťač DDL možno použiť na INSERT, UPDATE, DELETE, atď. Vyhlásenia a spúšťače DML sú určené na vytváranie, zmenu, presunutie atď. V rámci databázových tabuliek, ale spúšťače udalostí databázy fungujú, keď existuje akékoľvek prihlásenie, Pozastaviť, akcia spustenia databázy vykonaná v databáze.

Syntax každého spúšťača je ľahko zrozumiteľná a dá sa ľahko previesť na kód PL / SQL. Program PL / SQL, ako je spustenie odhlásenia, poskytol prehľad o tom, ako bude spúšťač databázy fungovať v prípade odhlásenia používateľa zo svojej databázy. V DML Trigger sme demonštrovali, ako AFTER Trigger bude fungovať, keď dôjde k novému vstupu nového zamestnanca. Spúšťače DDL sú užitočné pri prevencii akýchkoľvek konkrétnych zmien v databáze a schéme.

Odporúčané články

Toto je príručka pre spúšťače v PL / SQL. Tu diskutujeme o tom, ako vytvoriť spúšťače v PL / SQL, s príkladmi a výhodami. Môžete sa tiež pozrieť na nasledujúci článok.

  1. Kurzory v PL / SQL
  2. Príkaz CASE v PL / SQL
  3. Čo je PL / SQL?
  4. Príkazy PL / SQL
  5. Primárny kľúč vs. cudzí kľúč Hlavné rozdiely