Stvaranje i brisanje okidača u MySQL -u

Programiranje okidača u MySQL -u


Okidači ili uobičajeno pozivanje programiranje "okidača" Oni su vrsta objekata koji se nalaze u bazama podataka. Kada se određeni događaj ili radnja izvrši u navedenoj bazi podataka, naš okidač automatski izvršava radnju za koju smo je prethodno programirali.

The okidači aktiviraju se automatski kada se izvrše operacije INSERT, DELETE ili UPDATE, koje se umeću, brišu ili ažuriraju. Prilikom izvršavanja bilo koje od ovih radnji, naši okidači izvode instrukciju ili blok uputa za koje su prethodno programirani.

The struktura okidača u MySQL -u je sljedeći:

POVEĆAJTE

 [DEFINER = {korisnik | CURRENT_USER}]
Ovaj dio koda govori upravitelju baze podataka koji korisnik ima privilegije da može pozvati naše okidače kada će doći do DML događaja. Zadana vrijednost je CURRENT_USER.

Za odabir naziva našeg okidača potrebno je slijediti vrlo dobar kriterij koji je: Prvo unesite naziv tablice, zatim inicijal DML operacije, (I za umetanje, D za brisanje ili U za ažuriranje), a zatim početno od trenutka izvršenja (ili A za poslije ili B za prije).

 PRIJE | DESPUES DE
Označava samo trenutak kada će se naš okidač izvršiti, odnosno ako je okidač aktiviran prije DML događaja (prije) ili poslije (poslije).
 UMETNI | IZBRIŠI | AŽURIRAJ
Govori nam koju ćemo rečenicu upotrijebiti za aktiviranje okidača, Insert za unos podataka, Delete za brisanje ili Update za izmjenu.
 NAZIV tablice
Označava tablicu povezanu s našim okidačem.
 ZA SVAKI RED
To nam samo govori da će se okidač izvršiti za svaki redak naše tablice koji je prethodno definiran u ON -u.

The završni sql izraz ili će blok uputa biti rečenica ili rečenice koje će naš okidač izvršiti kada stupi u akciju.

Pokrenuti praktični primjer


Sada ćemo vidjeti praktičan primjer kako programirati okidač za prodaju autobusnih karata za određenu rutu dok ima slobodnih mjesta.
Možemo koristiti bilo koji softver koji prihvaća okidače i pohranjene procese.

1. Izrađujemo bazu podataka:

2. po redu stvaramo dvije tablice u našoj bazi podataka. Jedan od njih je mjesto gdje ćemo pohraniti prodane karte, a drugi je kreiran tako da možemo znati koliko je karata dostupno za dato putovanje.

Evo tablice koja će sadržavati podatke o broju prodanih ulaznica:

Zatim izrađujemo tablicu u koju spremamo podatke o broju dostupnih karata za svako konkretno putovanje:

3. Sada stvaramo tablicu za spremanje različitih putovanja:

4. Nakon stvaranja baze podataka i tablica stvorit ćemo SQL upit okidača, ali prije toga moramo znati koje su NOVI i STARI identifikatori u okidačima.

Kako bi naš okidač bio povezan s jednim ili više određenih stupaca tablice, moramo koristiti gore navedene identifikatore NOVO I STARO.
STAR: označava staru vrijednost stupca
NOVI: novu vrijednost koju bi mogao poprimiti.
Kao primjer: OLD.idtrip ili NEW.idtrip.

S INSERT izjava Možemo koristiti samo NOVI identifikator jer s INSERT -om generirana funkcija je uvođenje novih vrijednosti u stupac ili stupce.
Ako koristimo DELETE naredba u ovom slučaju moramo koristiti OLD identifikator jer s DELETE brišemo vrijednosti koje su već postojale.
S druge strane, ako koristimo UPDATE izraz Možemo koristiti STARO i NOVO jer se možemo pozivati ​​na stare ili nove vrijednosti jer ćemo za druge vrijednosti izmijeniti zapise koji su već postojali.

Sada kada razumijemo identifikatore, sql izraz bi izgledao ovako:

Izvršimo li sql izraz u programu koji ga podržava, to bismo doista vidjeli okidač je kreiran.

Kako bismo vidjeli kako to funkcionira, uvodimo neke logičke vrijednosti za putovanje autobusom, na primjer:

Ovdje sam na putovanju s identifikacijskim brojem 1 upisao da ima 45 slobodnih mjesta.

Nakon toga prodajemo kartu, na primjer kartu koja odgovara sjedalu 14:

Prilikom ovog upita, ako prijeđemo na polje current_availability, vidjet ćemo da se 45 promijenilo u 44, otkako je aktiviran okidač 'update_availability'.

The prednosti korištenja okidača je da se mogu programirati različiti slučajevi uporabe i da se održava integritet baze podataka, odnosno daje nam mogućnost stvaranja rutina koje automatski izvršavaju određene radnje bez potrebe za ručnim izvođenjem. To bi bilo vrlo valjano za provjeru valjanosti bilo koje vrste podataka ili za praćenje kretanja baze podataka.

Još jedan vrlo zanimljiv primjer koji sam upravo spomenuo u potvrdama je određivanje punoljetnosti prije nego što se izrekne rečenica, na primjer:

Nakon što smo vidjeli primjere stvaranja okidača, moramo znati kako pristupiti podacima okidača. Za to ćemo upotrijebiti rečenice:

Da biste vidjeli okidače u našoj bazi podataka:

 POKAŽITE TRIGGERS
S druge strane, ako želimo vidjeti podatke o okidaču koji su trenutno stvoreni:
 PRIKAŽI CREATE TRIGGER student_BU_trigger
Konačno, nakon što smo vidjeli kako se okidači stvaraju i prikazuju, vidjet ćemo koja se izjava koristi za uklanjanje okidača koji imamo u našoj bazi podataka.
Da bismo to učinili, moramo koristiti tipičnu naredbu delete: pad.
 DROP TRIGGER [IF_EXISTS] okidač_name

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave