logo

SQL Trigger | Opiskelijatietokanta

Liipaisin on tietokantaan tallennettu toiminto, joka käynnistää automaattisesti aina, kun tietokannassa tapahtuu erityinen tapahtuma. Liipaisin voidaan käynnistää esimerkiksi, kun rivi lisätään määritettyyn taulukkoon tai kun tiettyjä taulukon sarakkeita päivitetään. Yksinkertaisesti sanottuna laukaisin on kokoelma SQL käskyt tietyillä nimillä, jotka on tallennettu järjestelmämuistiin. Se kuuluu tiettyyn tallennettujen toimintosarjojen luokkaan, joka käynnistyy automaattisesti vastauksena tietokantapalvelimen tapahtumiin. Jokaiseen laukaisimeen on kiinnitetty taulukko.

Koska liipaisinta ei voida kutsua suoraan, toisin kuin tallennettua toimintosarjaa, sitä kutsutaan erikoisproseduuriksi. Liipaisinta kutsutaan automaattisesti aina, kun taulukkoon kohdistuu datan muutostapahtuma, mikä on pääasiallinen ero liipaisimen ja proseduurin välillä. Toisaalta tallennettu proseduuri on kutsuttava suoraan.



Seuraavat ovat tärkeimmät erot triggerien ja tallennettujen toimintojen välillä:

  1. Triggereitä ei voi kutsua tai suorittaa manuaalisesti.
  2. Ei ole mahdollista, että triggerit saavat parametreja.
  3. Tapahtumaa ei voida sitoa tai peruuttaa liipaisimen sisällä.

Syntaksi:

luo triggeri [triggerin_nimi]



[ennen | jälkeen]

lisää

[taulukon_nimi]



[jokaiselle riville]

[trigger_body]

Syntaksin selitys

  1. Luo liipaisin [triggerin_nimi]: Luo tai korvaa olemassa olevan triggerin triggerin_nimi.
  2. [ennen | after]: Tämä määrittää, milloin liipaisin suoritetaan.
  3. insert : Tämä määrittää DML-toiminnon.
  4. Kohdassa [taulukon_nimi]: Tämä määrittää triggeriin liittyvän taulukon nimen.
  5. [jokaiselle riville]: Tämä määrittää rivitason liipaisimen, eli liipaisin suoritetaan kullekin riville, jota asia koskee.
  6. [trigger_body]: Tämä antaa toiminnon, joka suoritetaan, kun liipaisin käynnistetään

Miksi käytämme laukaisimia?

Kun meidän on suoritettava joitain toimintoja automaattisesti tietyissä toivotuissa skenaarioissa, laukaisimesta on hyötyä. Meidän on esimerkiksi oltava tietoisia jatkuvasti muuttuvan taulukon muutosten tiheydestä ja ajoituksesta. Tällaisissa tapauksissa voisimme luoda liipaisimen tarvittavien tietojen lisäämiseksi eri taulukkoon, jos ensisijaiseen taulukkoon on tehty muutoksia.

Erilaiset triggerityypit SQL Serverissä

Triggereitä on kaksi luokkaa:

  1. DDL-laukaisin
  2. DML-laukaisin
  3. Kirjautumiskäynnistimet

DDL-laukaisimet

Data Definition Language (DDL) -komentotapahtumat, kuten Create_table, Create_view, drop_table, Drop_view ja Alter_table, saavat DDL-laukaisimet aktivoitumaan.

SQL Server

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

Lähtö:

DML-laukaisimet

Data käyttää manipulointikielen (DML) komentotapahtumat, jotka alkavat Insert-, Update- ja Delete-lauseilla, laukaisevat DML-laukaisimet. jotka vastaavat lisätaulukkoa, päivitysnäkymää ja poista_taulukkoa.

SQL Server

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

Lähtö:

Kirjautumiskäynnistimet

kirjautumislaukaisimet ovat paloja vastauksena LOGON-tapahtumaan. Kun käyttäjäistunto luodaan SQL Server -esiintymän kanssa sen jälkeen, kun kirjaamisen todennusprosessi on päättynyt, mutta ennen käyttäjäistunnon perustamista, LOGON-tapahtuma tapahtuu. Tämän seurauksena PRINT-käskysanomat ja kaikki liipaisimen luomat virheet näkyvät kaikki SQL Server -virhelokissa. Todennusvirheet estävät kirjautumislaukaisimien käytön. Näitä triggereitä voidaan käyttää kirjautumistoiminnan seuraamiseen tai rajoittaa tietyn kirjautumistunnuksen istuntojen määrää palvelinistuntojen tarkastamiseksi ja hallitsemiseksi.

Kuinka SQL Server näyttää triggerin?

Näytä tai lista laukaisu on hyödyllinen, kun meillä on useita tietokantoja, joissa on useita taulukoita. Tämä kysely on erittäin hyödyllinen, kun taulukoiden nimet ovat samat useissa tietokannoissa. Voimme tarkastella luetteloa kaikista SQL Serverissä saatavilla olevista laukaisimista käyttämällä alla olevaa komentoa:

estää YouTube-mainokset Androidissa

Syntaksi:

FROM sys.triggers, SELECT nimi, on_triggerin_sijasta
IF-tyyppi = 'TR';

SQL Server Management Studion avulla on erittäin helppo näyttää tai listata kaikki tietylle taulukolle saatavilla olevat triggerit. Seuraavat vaiheet auttavat meitä saavuttamaan tämän:

Siirry kohtaan Tietokannat -valikosta, valitse haluamasi tietokanta ja laajenna se.

  • Valitse Taulukot valikko ja laajenna se.
  • Valitse mikä tahansa taulukko ja laajenna se.

Täältä saamme erilaisia ​​vaihtoehtoja. Kun valitsemme Liipaisimet -vaihtoehto, se näyttää kaikki tässä taulukossa käytettävissä olevat laukaisimet.

ENNEN ja JÄLKEEN Liipaisin

ENNEN triggerit suorittavat liipaisutoiminnon ennen kuin liipaisulause suoritetaan. AFTER-laukaisimet suorittavat liipaisutoiminnon sen jälkeen, kun liipaisukäsky on suoritettu.

Esimerkki
Annettu opiskelijaraporttitietokanta, johon opiskelijaarvostelut tallennetaan. Luo tällaisessa skeemassa liipaisin, jotta määritettyjen merkkien kokonaismäärä ja prosenttiosuus lisätään automaattisesti aina, kun tietue lisätään.

Tässä triggeri käynnistää ennen tietueen lisäämistä, joten BEFORE-tunnistetta voidaan käyttää.

Oletetaan tietokantakaavio

Kysely

mysql>>desc Opiskelija;>

SQL-käynnistin ongelmalauseeseen.

img2

SQL-käskyn yläpuolella luodaan opiskelijatietokantaan triggeri, johon aina kun oppiaineiden arvosanat syötetään, ennen näiden tietojen lisäämistä tietokantaan, triggeri laskee nämä kaksi arvoa ja lisää ne syötettyjen arvojen kanssa. eli

Lähtö

img3

Tällä tavalla tietokantoihin voidaan luoda ja suorittaa triggereitä.

Triggerien etu

Triggerien käytön etuja SQL Serverissä ovat seuraavat:

  1. Tietokantaobjektin säännöt määritetään triggereillä, jotka aiheuttavat muutosten kumoamisen, jos niitä ei täyty.
  2. Triggeri tutkii tiedot ja tekee tarvittaessa muutoksia.
  3. Voimme valvoa tietojen eheyttä triggerien ansiosta.
  4. Tiedot tarkistetaan triggereillä ennen niiden lisäämistä tai päivittämistä.
  5. Triggerit auttavat meitä ylläpitämään tietuelokia.
  6. Koska niitä ei tarvitse kääntää joka kerta, kun niitä ajetaan, triggerit parantavat SQL-kyselyiden suorituskykyä.
  7. Triggerit vähentävät asiakaspuolen koodia, mikä säästää aikaa ja työtä.
  8. Liipaisimen huolto on yksinkertaista.

Epäkohta triggereistä

Triggerien käytön haittoja SQL Serverissä ovat seuraavat:

  1. Vain laukaisimet sallivat laajennettujen validointien käytön.
  2. Automaattisia laukaisuja käytetään, eikä käyttäjä tiedä, milloin niitä suoritetaan. Tästä johtuen tietokantakerroksessa esiintyvien ongelmien vianmääritys on vaikeaa.
  3. Tietokantapalvelimen yleiskustannukset voivat kasvaa liipaisujen seurauksena.
  4. Yhdessä CREATE TRIGGER -käskyssä voimme määrittää saman laukaisutoiminnon useille käyttäjän toimille, kuten INSERT ja UPDATE.
  5. Vain nykyinen tietokanta on käytettävissä laukaisimien luomiseen, mutta ne voivat silti viitata tietokannan ulkopuolisiin objekteihin.

Usein Kysytyt Kysymykset

Q1: Mikä on SQL-laukaisin?

Vastaus:

SQL-laukaisin on tietokantaobjekti, joka liittyy taulukkoon ja suorittaa automaattisesti joukon SQL-käskyjä, kun tietty tapahtuma tapahtuu kyseisessä taulukossa. Triggereitä käytetään yrityssääntöjen täytäntöönpanoon, tietojen eheyden ylläpitämiseen ja tiettyjen tietokannan toimien automatisointiin. Ne voivat laukaista erilaisia ​​tapahtumia, kuten tietojen lisääminen, päivittäminen tai poistaminen taulukkoon, ja niiden avulla voit suorittaa lisätoimintoja kyseisten tapahtumien perusteella.

Q2: Kuinka SQL-triggerit toimivat?

Vastaus:

SQL-laukaisimet määritellään SQL-käskyjen avulla, ja ne liitetään tiettyyn taulukkoon. Kun määritetty liipaisutapahtuma (esim. INSERT, UPDATE, DELETE) tapahtuu kyseisessä taulukossa, siihen liittyvä laukaisukoodi suoritetaan automaattisesti. Liipaisukoodi voi koostua SQL-käskyistä, jotka voivat käsitellä tietoja samoissa tai muissa taulukoissa, pakottaa rajoituksia tai suorittaa muita toimintoja. Triggerit suoritetaan tapahtuma-alueen sisällä, ja ne voidaan määrittää suoritettavaksi joko ennen tai jälkeen liipaisutapahtuman.

q1 q2 q3 q4

Q3: Mitä etuja SQL-triggerien käytöstä on?

Vastaus:

SQL-triggerien käytön etuja ovat:

Tietojen eheys: Triggerien avulla voit pakottaa monimutkaisia ​​liiketoimintasääntöjä ja rajoituksia tietokantatasolla varmistaen, että tiedot pysyvät johdonmukaisina ja tarkkoina.

Automaatio: Triggerit voivat automatisoida toistuvia tai monimutkaisia ​​tehtäviä suorittamalla ennalta määritettyjä toimintoja aina, kun tietty tapahtuma tapahtuu. Tämä vähentää manuaalisten toimenpiteiden tarvetta ja parantaa tehokkuutta.

Jälkijäljet: Triggereillä voidaan seurata tietoihin tehtyjä muutoksia, kuten kirjata muutokset erilliseen auditointitaulukkoon. Tämä auttaa tarkastamaan ja ylläpitämään datamuutoshistoriaa.

Tietojen validointi: Triggerit voivat suorittaa lisätarkistuksia tiedoille ennen niiden lisäämistä, päivittämistä tai poistamista varmistaen, että tietokantaan tallennetaan vain kelvollisia ja vaatimustenmukaisia ​​tietoja.