logo

SQL trigeris | Studentu datu bāze

Trigeris ir datubāzē saglabāta procedūra, kas automātiski izsauc ikreiz, kad datu bāzē notiek īpašs notikums. Piemēram, trigeri var izsaukt, kad norādītajā tabulā tiek ievietota rinda vai tiek atjauninātas noteiktas tabulas kolonnas. Vienkāršiem vārdiem sakot, sprūda ir kolekcija SQL paziņojumi ar konkrētiem nosaukumiem, kas tiek saglabāti sistēmas atmiņā. Tas pieder noteiktai uzglabāto procedūru klasei, kas tiek automātiski izsauktas, reaģējot uz datu bāzes servera notikumiem. Katram sprūdam ir pievienota tabula.

Tā kā trigeri nevar tieši izsaukt, atšķirībā no saglabātās procedūras, to sauc par īpašu procedūru. Trigeris tiek automātiski izsaukts ikreiz, kad notiek datu modifikācijas notikums pret tabulu, kas ir galvenā atšķirība starp trigeri un procedūru. No otras puses, saglabātā procedūra ir jāizsauc tieši.



Tālāk ir norādītas galvenās atšķirības starp aktivizētājiem un saglabātajām procedūrām.

  1. Trigerus nevar manuāli izsaukt vai izpildīt.
  2. Nav iespēju, ka aktivizētāji saņems parametrus.
  3. Darījumu nevar veikt vai atsaukt aktivizētāja ietvaros.

Sintakse:

izveidot trigeri [trigera_nosaukums]



[pirms | pēc]

ievietot

uz [table_name]



[katrai rindai]

tīmekļa pārlūkprogrammas iestatījumi

[trigger_body]

Sintakses skaidrojums

  1. Izveidot aktivizētāju [trigera_nosaukums]: izveido vai aizstāj esošu aktivizētāju ar trigera_nosaukums.
  2. [pirms | after]: tas norāda, kad tiks izpildīts trigeris.
  3. ievietot: tas norāda DML darbību.
  4. Vietnē [tabulas_nosaukums]: tas norāda ar aktivizētāju saistītās tabulas nosaukumu.
  5. [katrai rindai]: tiek norādīts rindas līmeņa aktivizētājs, t.i., aktivizētājs tiks izpildīts katrai ietekmētajai rindai.
  6. [trigger_body]: nodrošina darbību, kas jāveic, kad tiek aktivizēts trigeris

Kāpēc mēs izmantojam trigerus?

Ja mums ir jāveic dažas darbības automātiski noteiktos vēlamos scenārijos, aktivizētāji būs noderīgi. Piemēram, mums ir jāapzinās izmaiņu biežums un laiks tabulā, kas pastāvīgi mainās. Šādos gadījumos mēs varētu izveidot trigeri, lai ievietotu nepieciešamos datus citā tabulā, ja primārajā tabulā ir veiktas izmaiņas.

Dažādi trigeru veidi SQL serverī

Pastāv divas trigeru kategorijas:

  1. DDL trigeris
  2. DML aktivizētājs
  3. Pieteikšanās aktivizētāji

DDL trigeri

Datu definīcijas valodas (DDL) komandu notikumi, piemēram, Create_table, Create_view, drop_table, Drop_view un Alter_table, izraisa DDL trigeru aktivizēšanu.

SQL serveris

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

Izvade:

DML aktivizētāji

Dati izmanto manipulācijas valodas (DML) komandu notikumus, kas sākas ar Ievietot, Atjaunināt un Dzēst, izslēdz DML trigerus. kas atbilst tabulas ievietošanas_tabulai, update_view un delete_table.

SQL serveris

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

Izvade:

Pieteikšanās aktivizētāji

pieteikšanās aktivizētāji ir aizdegšanās, reaģējot uz LOGON notikumu. Kad lietotāja sesija tiek izveidota ar SQL Server instanci pēc reģistrēšanas autentifikācijas procesa pabeigšanas, bet pirms lietotāja sesijas izveides, notiek notikums LOGON. Rezultātā PRINT priekšraksta ziņojumi un visas trigera ģenerētās kļūdas būs redzamas SQL Server kļūdu žurnālā. Autentifikācijas kļūdas neļauj izmantot pieteikšanās aktivizētājus. Šos aktivizētājus var izmantot, lai izsekotu pieteikšanās darbību vai iestatītu sesiju skaita ierobežojumu, kas var būt konkrētam pieteikšanās vārdam, lai pārbaudītu un pārvaldītu servera sesijas.

Kā SQL Server parāda trigeri?

Rādes vai saraksta aktivizētājs ir noderīgs, ja mums ir daudz datu bāzu ar daudzām tabulām. Šis vaicājums ir ļoti noderīgs, ja tabulu nosaukumi ir vienādi vairākās datu bāzēs. Mēs varam skatīt sarakstu ar katru SQL serverī pieejamo aktivizētāju, izmantojot tālāk norādīto komandu:

Sintakse:

FROM sys.triggers, SELECT nosaukums, ir_trigera_vieta
IF tips = “TR”;

SQL Server Management Studio ļauj ļoti vienkārši parādīt vai uzskaitīt visus trigerus, kas ir pieejami jebkurai tabulai. Tālāk norādītās darbības palīdzēs mums to paveikt:

Dodieties uz Datu bāzes izvēlnē atlasiet vajadzīgo datu bāzi un pēc tam izvērsiet to.

  • Izvēlieties Tabulas izvēlni un izvērsiet to.
  • Izvēlieties jebkuru konkrētu tabulu un izvērsiet to.

Šeit mēs iegūsim dažādas iespējas. Kad mēs izvēlamies Trigeri opciju, tas parāda visus šajā tabulā pieejamos aktivizētājus.

PIRMS un PĒC Sprūda

PIRMS trigeri palaist trigera darbību, pirms tiek palaists aktivizētājs. AFTER aktivizētāji palaiž trigera darbību pēc tam, kad ir izpildīts palaišanas priekšraksts.

Piemērs
Dotā Studentu atskaites datu bāze, kurā tiek reģistrēts studentu atzīmju vērtējums. Šādā shēmā izveidojiet trigeri, lai norādīto atzīmju kopsumma un procentuālā daļa tiktu automātiski ievietota ikreiz, kad tiek ievietots ieraksts.

Šeit pirms ieraksta ievietošanas tiks izsaukts trigeris, lai varētu izmantot tagu BEFORE.

Pieņemsim, ka datu bāzes shēma

Vaicājums

java if paziņojums
mysql>>desc Students;>

SQL aktivizētājs problēmas paziņojumam.

img2

Virs SQL priekšraksta studentu datubāzē izveidos trigeri, kurā ikreiz, kad tiek ievadītas mācību priekšmetu atzīmes, pirms šo datu ievietošanas datu bāzē trigeris aprēķinās šīs divas vērtības un ievietos tās kopā ar ievadītajām vērtībām. t.i.

Izvade

img3

Tādā veidā datu bāzēs var izveidot un izpildīt trigerus.

Trigeru priekšrocības

Trigeru izmantošanas priekšrocības programmā SQL Server ir šādas:

  1. Datu bāzes objektu noteikumus nosaka trigeri, kuru dēļ izmaiņas tiek atsauktas, ja tās netiek izpildītas.
  2. Trigeris pārbaudīs datus un, ja nepieciešams, veiks izmaiņas.
  3. Mēs varam nodrošināt datu integritāti, pateicoties aktivizētājiem.
  4. Pirms ievietošanas vai atjaunināšanas dati tiek pārbaudīti, izmantojot trigerus.
  5. Trigeri palīdz mums uzturēt ierakstu žurnālu.
  6. Sakarā ar to, ka tie nav jākompilē katru reizi, kad tie tiek palaisti, trigeri uzlabo SQL vaicājumu veiktspēju.
  7. Klienta puses kodu samazina trigeri, ietaupot laiku un darbu.
  8. Sprūda apkope ir vienkārša.

Trūkums no trigeriem

Trigeru izmantošanas trūkumi programmā SQL Server ir šādi:

  1. Tikai aktivizētāji ļauj izmantot paplašinātas validācijas.
  2. Tiek izmantoti automātiskie trigeri, un lietotājs nezina, kad tie tiek izpildīti. Līdz ar to ir grūti novērst problēmas, kas rodas datu bāzes slānī.
  3. Trigeru dēļ datu bāzes servera pieskaitāmās izmaksas var palielināties.
  4. Vienā CREATE TRIGGER priekšrakstā mēs varam norādīt vienu un to pašu aktivizētāja darbību vairākām lietotāja darbībām, piemēram, INSERT un UPDATE.
  5. Trigeru izveidei ir pieejama tikai pašreizējā datu bāze, taču tie joprojām var sniegt atsauces uz objektiem ārpus datu bāzes.

bieži uzdotie jautājumi

Q1: Kas ir SQL aktivizētājs?

Atbilde:

SQL trigeris ir datu bāzes objekts, kas ir saistīts ar tabulu un automātiski izpilda SQL priekšrakstu kopu, kad šajā tabulā notiek konkrēts notikums. Trigeri tiek izmantoti, lai ieviestu biznesa noteikumus, uzturētu datu integritāti un automatizētu noteiktas darbības datu bāzē. Tos var aktivizēt dažādi notikumi, piemēram, datu ievietošana, atjaunināšana vai dzēšana tabulā, un tie ļauj veikt papildu darbības, pamatojoties uz šiem notikumiem.

Q2: Kā darbojas SQL aktivizētāji?

Atbilde:

SQL trigeri tiek definēti, izmantojot SQL priekšrakstus, un ir saistīti ar noteiktu tabulu. Kad definētais trigera notikums (piemēram, INSERT, UPDATE, DELETE) notiek šajā tabulā, saistītais trigera kods tiek izpildīts automātiski. Trigera kods var sastāvēt no SQL priekšrakstiem, kas var manipulēt ar datiem tajā pašā vai citās tabulās, ieviest ierobežojumus vai veikt citas darbības. Trigeri tiek izpildīti transakcijas tvērumā, un tos var definēt, lai tie tiktu izpildīti pirms vai pēc aktivizēšanas notikuma.

Q3: Kādas ir SQL trigeru izmantošanas priekšrocības?

Atbilde:

SQL trigeru izmantošanas priekšrocības ietver:

Datu integritāte: Trigeri ļauj ieviest sarežģītus biznesa noteikumus un ierobežojumus datu bāzes līmenī, nodrošinot datu konsekventu un precizitāti.

Automatizācija: aktivizētāji var automatizēt atkārtotus vai sarežģītus uzdevumus, izpildot iepriekš noteiktas darbības ikreiz, kad notiek noteikts notikums. Tas samazina nepieciešamību pēc manuālas iejaukšanās un uzlabo efektivitāti.

Audita pēdas: trigerus var izmantot, lai izsekotu datos veiktajām izmaiņām, piemēram, reģistrētu izmaiņas atsevišķā audita tabulā. Tas palīdz pārbaudīt un uzturēt datu izmaiņu vēsturi.

Datu validācija: aktivizētāji var veikt papildu datu validācijas pārbaudes pirms to ievietošanas, atjaunināšanas vai dzēšanas, nodrošinot, ka datu bāzē tiek saglabāti tikai derīgi un atbilstoši dati.