logo

SQL Trigger | Databáza študentov

Spúšťač je uložená procedúra v databáze, ktorá sa automaticky vyvolá vždy, keď sa v databáze vyskytne špeciálna udalosť. Spúšťač je možné napríklad vyvolať, keď sa do zadanej tabuľky vloží riadok alebo keď sa aktualizujú špecifické stĺpce tabuľky. Jednoducho povedané, spúšťač je zbierka SQL príkazy s konkrétnymi názvami, ktoré sú uložené v systémovej pamäti. Patrí do špecifickej triedy uložených procedúr, ktoré sa automaticky vyvolávajú v reakcii na udalosti databázového servera. Ku každému spúšťaču je pripojená tabuľka.

Pretože spúšťač nemožno na rozdiel od uloženej procedúry volať priamo, označuje sa ako špeciálna procedúra. Spúšťač sa automaticky volá vždy, keď dôjde k udalosti zmeny údajov v tabuľke, čo je hlavný rozdiel medzi spúšťačom a procedúrou. Na druhej strane musí byť uložená procedúra volaná priamo.



Nasledujú kľúčové rozdiely medzi spúšťačmi a uloženými procedúrami:

  1. Spúšťače nie je možné vyvolať ani spustiť manuálne.
  2. Neexistuje žiadna šanca, že spúšťače dostanú parametre.
  3. Transakciu nemožno potvrdiť ani vrátiť späť v rámci spúšťača.

Syntax:

vytvoriť spúšťač [trigger_name]



[pred | po]

vložiť

na [názov_tabuľky]



json z java objektu

[pre každý riadok]

[trigger_body]

Vysvetlenie syntaxe

  1. Create trigger [trigger_name]: Vytvorí alebo nahradí existujúci spúšťač spúšťačom trigger_name.
  2. [pred | after]: Špecifikuje, kedy bude spúšťač vykonaný.
  3. insert : Špecifikuje operáciu DML.
  4. On [názov_tabuľky]: Špecifikuje názov tabuľky spojenej so spúšťačom.
  5. [pre každý riadok]: Špecifikuje spúšťač na úrovni riadka, t. j. spúšťač sa vykoná pre každý ovplyvnený riadok.
  6. [trigger_body]: Toto poskytuje operáciu, ktorá sa má vykonať pri spustení spúšťača

Prečo používame spúšťače?

Keď potrebujeme vykonať niektoré akcie automaticky v určitých požadovaných scenároch, budú užitočné spúšťače. Napríklad si musíme uvedomiť frekvenciu a načasovanie zmien tabuľky, ktorá sa neustále mení. V takýchto prípadoch by sme mohli vytvoriť spúšťač na vloženie požadovaných údajov do inej tabuľky, ak primárna tabuľka prešla akýmikoľvek zmenami.

Rôzne typy spúšťačov v SQL Server

Existujú dve kategórie spúšťačov:

  1. Spúšťač DDL
  2. Spúšťač DML
  3. Spúšťače prihlásenia

Spúšťače DDL

Udalosti príkazu jazyka DDL (Data Definition Language), ako napríklad Create_table, Create_view, drop_table, Drop_view a Alter_table, spôsobujú aktiváciu spúšťačov DDL.

SQL Server

  create trigger safety    on database  for   create_table,alter_table,drop_table  as   print 'you can not create,drop and alter tab>

Výkon:

Spúšťače DML

Data používajú udalosti príkazu DML (manipulation Language), ktoré začínajú slovami Vložiť, Aktualizovať a Vymazať, čím sa spúšťajú spúšťače DML. čo zodpovedá insert_table, update_view a delete_table.

siete a typy

SQL Server

create trigger deep  on   emp  for insert,update ,delete   as   print 'you can not insert,update and delete this table i' rollback;>

Výkon:

Spúšťače prihlásenia

prihlasovacie spúšťače sú požiare v reakcii na udalosť LOGON. Keď sa vytvorí používateľská relácia s inštanciou SQL Server po dokončení procesu overovania protokolovania, ale pred vytvorením relácie používateľa, uskutoční sa udalosť LOGON. V dôsledku toho budú správy príkazu PRINT a všetky chyby generované spúšťačom viditeľné v protokole chýb servera SQL Server. Chyby overenia bránia použitiu spúšťačov prihlásenia. Tieto spúšťače možno použiť na sledovanie aktivity prihlásenia alebo nastavenie limitu počtu relácií, ktoré môže mať dané prihlásenie, aby bolo možné auditovať a spravovať relácie servera.

Ako SQL Server zobrazuje spúšťač?

Spúšťač show alebo list je užitočný, keď máme veľa databáz s mnohými tabuľkami. Tento dotaz je veľmi užitočný, keď sú názvy tabuliek rovnaké vo viacerých databázach. Pomocou nižšie uvedeného príkazu môžeme zobraziť zoznam všetkých spúšťačov dostupných na serveri SQL:

Syntax:

FROM sys.triggers, názov SELECT, is_instead_of_trigger
IF typ = „TR“;

SQL Server Management Studio veľmi zjednodušuje zobrazenie alebo zoznam všetkých spúšťačov, ktoré sú dostupné pre danú tabuľku. Nasledujúce kroky nám to pomôžu dosiahnuť:

Choďte na databázy vyberte požadovanú databázu a potom ju rozbaľte.

  • Vyberte Tabuľky menu a rozbaľte ho.
  • Vyberte ľubovoľnú konkrétnu tabuľku a rozbaľte ju.

Dostaneme tu rôzne možnosti. Keď si vyberieme Spúšťače zobrazí všetky spúšťače dostupné v tejto tabuľke.

PRED a PO Spúšťač

BEFORE spúšťače spustite akciu spúšťača pred spustením spúšťacieho príkazu. AFTER spúšťače spustite spúšťaciu akciu po spustení spúšťacieho príkazu.

Príklad
Daná databáza správ študentov, v ktorej sa zaznamenáva hodnotenie študentov. V takejto schéme vytvorte spúšťač, aby sa pri každom vložení záznamu automaticky vložil celkový počet a percento špecifikovaných značiek.

Tu sa spustí spúšťač pred vložením záznamu, aby bolo možné použiť značku BEFORE.

Predpokladajme, že schéma databázy

Dopyt

mysql>>desc Študent;>

SQL Spúšťač pre príkaz problému.

img2

Nad príkazom SQL vytvorí v databáze študentov spúšťač, do ktorého vždy, keď sú zadané známky predmetov, pred vložením týchto údajov do databázy spúšťač vypočíta tieto dve hodnoty a vloží ich so zadanými hodnotami. t.j.

Výkon

img3

Týmto spôsobom je možné vytvárať a spúšťať spúšťače v databázach.

Výhoda spúšťačov

Výhody používania spúšťačov na serveri SQL Server zahŕňajú nasledovné:

  1. Pravidlá databázových objektov sú stanovené spúšťačmi, ktoré spôsobia zrušenie zmien, ak nie sú splnené.
  2. Spúšťač skontroluje údaje a v prípade potreby vykoná zmeny.
  3. Integritu údajov môžeme presadiť vďaka spúšťačom.
  4. Údaje sa pred vložením alebo aktualizáciou overia pomocou spúšťačov.
  5. Spúšťače nám pomáhajú udržiavať denník záznamov.
  6. Vzhľadom na skutočnosť, že nie je potrebné ich kompilovať pri každom spustení, spúšťače zlepšujú výkon SQL dotazov.
  7. Kód na strane klienta je redukovaný spúšťačmi, čo šetrí čas a prácu.
  8. Údržba spúšťača je jednoduchá.

Nevýhoda spúšťačov

Nevýhody používania spúšťačov na serveri SQL Server zahŕňajú nasledovné:

  1. Iba spúšťače umožňujú použitie rozšírených overení.
  2. Používajú sa automatické spúšťače a používateľ nevie, kedy sa spúšťajú. V dôsledku toho je ťažké riešiť problémy, ktoré vznikajú v databázovej vrstve.
  3. Réžia databázového servera sa môže zvýšiť v dôsledku spúšťačov.
  4. V jedinom príkaze CREATE TRIGGER môžeme zadať rovnakú spúšťaciu akciu pre viaceré akcie používateľa, ako napríklad INSERT a UPDATE.
  5. Na vytváranie spúšťačov je k dispozícii iba aktuálna databáza, ale stále môžu vytvárať odkazy na objekty mimo databázy.

často kladené otázky

Q1: Čo je spúšťač SQL?

odpoveď:

Spúšťač SQL je databázový objekt, ktorý je priradený k tabuľke a automaticky vykoná sadu príkazov SQL, keď sa v tejto tabuľke vyskytne špecifická udalosť. Spúšťače sa používajú na presadzovanie obchodných pravidiel, udržiavanie integrity údajov a automatizáciu určitých akcií v rámci databázy. Môžu byť spustené rôznymi udalosťami, ako je vkladanie, aktualizácia alebo vymazanie údajov v tabuľke, a umožňujú vám vykonávať ďalšie operácie na základe týchto udalostí.

Otázka 2: Ako fungujú spúšťače SQL?

odpoveď:

Spúšťače SQL sú definované pomocou príkazov SQL a sú spojené s konkrétnou tabuľkou. Keď sa na tejto tabuľke vyskytne definovaná spúšťacia udalosť (napr. INSERT, UPDATE, DELETE), príslušný spúšťací kód sa vykoná automaticky. Spúšťací kód môže pozostávať z príkazov SQL, ktoré môžu manipulovať s údajmi v rovnakých alebo iných tabuľkách, vynucovať obmedzenia alebo vykonávať iné akcie. Spúšťače sa vykonávajú v rámci rozsahu transakcie a možno ich definovať tak, aby sa spustili pred alebo po udalosti spustenia.

Otázka 3: Aké sú výhody používania spúšťačov SQL?

odpoveď:

Medzi výhody používania spúšťačov SQL patria:

Integrita údajov: Spúšťače vám umožňujú presadzovať komplexné obchodné pravidlá a obmedzenia na úrovni databázy, čím zaisťujú, že údaje zostanú konzistentné a presné.

Automatizácia: Spúšťače môžu automatizovať opakujúce sa alebo zložité úlohy vykonaním vopred definovaných akcií vždy, keď nastane špecifikovaná udalosť. To znižuje potrebu manuálneho zásahu a zvyšuje efektivitu.

755 chmod

Záznamy auditu: Spúšťače možno použiť na sledovanie zmien vykonaných v údajoch, ako je napríklad zaznamenávanie zmien do samostatnej tabuľky auditu. Pomáha to pri auditovaní a udržiavaní histórie zmien údajov.

Overenie údajov: Spúšťače môžu vykonávať dodatočné overovacie kontroly údajov pred ich vložením, aktualizáciou alebo vymazaním, čím sa zabezpečí, že v databáze budú uložené iba platné a vyhovujúce údaje.