Creați și ștergeți declanșatoare în MySQL

Programarea declanșatorului în MySQL


Declanșează sau sună în mod obișnuit programarea „declanșatoarelor” Sunt un tip de obiect găsit în bazele de date. Când se efectuează un anumit eveniment sau operație în baza de date menționată, declanșatorul nostru execută automat o acțiune pentru care am programat-o anterior.

declanșează acestea sunt activate automat la efectuarea operațiilor INSERT, DELETE sau UPDATE, care sunt inserate, șterse sau respectiv actualizate. Atunci când executăm oricare dintre aceste acțiuni, declanșatoarele noastre efectuează o instrucțiune sau un bloc de instrucțiuni pentru care au fost programate anterior.

structura unui declanșator în MySQL este următorul:

MARI

 [DEFINER = {utilizator | CURRENT_USER}]
Această parte a codului îi spune managerului bazei de date ce utilizator are privilegii să poată apela declanșatoarele noastre atunci când vor apărea evenimente DML. Valoarea implicită este CURRENT_USER.

Pentru a alege numele declanșatorului nostru există un criteriu foarte bun de urmat, care este: Puneți mai întâi numele tabelului, apoi inițiala operației DML (I pentru Insert, D pentru Delete sau U pentru Update) și apoi inițială din momentul execuției (fie A pentru după, fie B pentru înainte).

 ÎNAINTE | DISPUES DE
Acesta indică doar momentul în care declanșatorul nostru va fi executat, adică dacă declanșatorul este declanșat înainte de evenimentul DML (înainte) sau după (după).
 INSERT | ȘTERGE | ACTUALIZAȚI
Ne spune care va fi propoziția pe care o vom folosi pentru a declanșa declanșatorul nostru, Inserați pentru a introduce date, Ștergeți pentru a le șterge sau Actualizați pentru a le modifica.
 Nume tabel ON
Acesta indică tabelul asociat cu declanșatorul nostru.
 PENTRU FIECARE RÂND
Ne spune doar că declanșatorul va fi executat pentru fiecare rând al tabelului nostru definit anterior în ON.

declarație sql finală sau blocul de instrucțiuni va fi propoziția sau propozițiile pe care declanșatorul nostru le va executa atunci când intră în acțiune.

Exemplu practic de declanșare


Acum vom vedea un exemplu practic despre cum să programăm un declanșator pentru a vinde bilete de autobuz pentru o anumită rută, în timp ce există locuri libere.
Putem folosi orice software care acceptă declanșatoare și procese stocate.

Primul Creăm o bază de date:

Al 2-lea la rând creăm două tabele în baza noastră de date. Una dintre ele este locul unde vom stoca biletele vândute, iar cealaltă este creată astfel încât să putem ști câte bilete sunt disponibile pentru călătoria dată.

Iată tabelul care va conține informații cu privire la numărul de bilete vândute:

Apoi, creăm tabelul în care salvăm informațiile despre numărul de bilete disponibile pentru fiecare călătorie specifică:

Al 3-lea acum noi creăm tabelul pentru a stoca diferitele călătorii:

Al 4-lea După crearea bazei de date și a tabelelor, vom crea interogarea SQL a declanșatorului, dar înainte de aceasta trebuie să știm care sunt Identificatori NOI și VECHI în declanșatoare.

Pentru ca declanșatorul nostru să fie legat de una sau mai multe coloane specifice din tabel, trebuie să folosim identificatorii menționați mai sus NOU ȘI VECHI.
VECHI: indică vechea valoare a coloanei
NOU: noua valoare pe care ar putea-o lua.
Ca exemplu: OLD.idtrip sau NEW.idtrip.

Cu Declarație INSERT Putem folosi doar identificatorul NOU deoarece, cu INSERT, funcția generată este de a introduce noi valori coloanei sau coloanelor.
Dacă folosim Declarație DELETE în acest caz trebuie să folosim identificatorul VECHI deoarece cu DELETE ștergem valori care existau deja anterior.
Pe de altă parte, dacă folosim Declarație UPDATE Putem folosi VECHI și NOU, deoarece ne putem referi la valori vechi sau noi, deoarece vom modifica înregistrările care existau deja pentru alte valori.

Acum că înțelegem identificatorii, declarația sql ar arăta astfel:

Dacă executăm declarația sql într-un program care o acceptă, am vedea asta într-adevăr declanșatorul a fost creat.

Pentru a vedea cum funcționează, introducem câteva valori logice pentru o călătorie cu autobuzul, de exemplu:

Aici am introdus în călătorie cu numărul de identificare 1 că sunt 45 de locuri disponibile.

După aceasta vindem un bilet, de exemplu biletul care corespunde locului 14:

Când facem această interogare, dacă mergem la câmpul current_availability, vom vedea că 45 s-a schimbat la 44, de când a fost activat declanșatorul „update_availability”.

avantajele utilizării declanșatoarelor este că pot fi programate diferite cazuri de utilizare și că integritatea bazei de date este menținută, adică ne oferă opțiunea de a crea rutine care execută anumite acțiuni în mod automat, fără a fi nevoie să o faceți manual. Ar fi foarte valabil pentru validarea oricărui tip de informație sau pentru a face o anumită urmărire a mișcărilor bazei de date.

Un alt exemplu foarte interesant, așa cum tocmai am menționat în validări, este determinarea vârstei majore înainte de a formula o propoziție, de exemplu:

După ce vedem exemplele de creare a declanșatoarelor, trebuie să știm cum să accesăm informațiile declanșatorului. Pentru aceasta vom folosi propozițiile:

Pentru a vedea declanșatoarele în baza noastră de date:

 AFIȘAȚI TRIGGERS
Pe de altă parte, dacă vrem să vedem informațiile declanșatorului care a fost creat în acest moment:
 SHOW CREATE TRIGGER student_BU_trigger
În cele din urmă, după ce am văzut cum sunt create și afișate declanșatoarele, vom vedea care este declarația utilizată pentru a elimina un declanșator pe care îl avem în baza noastră de date.
Pentru a face acest lucru, trebuie doar să folosim comanda tipică de ștergere: cădere brusca.
 DROP TRIGGER [IF_EXISTS] trigger_name

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave