Suaktyvinkite programavimą „MySQL“
Trigeriai arba dažniausiai kviečiami programavimas „trigeriai“ Tai yra objektų tipas, randamas duomenų bazėse. Kai minėtoje duomenų bazėje atliekamas tam tikras įvykis ar operacija, mūsų aktyviklis automatiškai atlieka veiksmą, kuriam mes jį anksčiau užprogramavome.
The paleidiklius jie įjungiami automatiškai, kai atliekamos INSERT, DELETE arba UPDATE operacijos, kurios atitinkamai įterpiamos, ištrinamos arba atnaujinamos. Vykdydami bet kurį iš šių veiksmų, mūsų aktyvikliai vykdo nurodymus arba instrukcijų blokus, kuriems jie buvo anksčiau užprogramuoti.
The „MySQL“ trigerio struktūra yra kitas:
DIDELIS
[DEFINER = {vartotojas | CURRENT_USER}]Ši kodo dalis nurodo duomenų bazės valdytojui, kuris vartotojas turi privilegijas, kad galėtų iškviesti mūsų aktyviklius, kai įvyks DML įvykiai. Numatytoji vertė yra CURRENT_USER.
Norint pasirinkti aktyviklio pavadinimą, reikia vadovautis labai geru kriterijumi: pirmiausia įrašykite lentelės pavadinimą, tada pradinį DML veiksmą (I - įterpimas, D - ištrynimas arba U - atnaujinimas), tada pradinis nuo vykdymo momento (arba A po, arba B prieš).
PRIEŠ | DESPUES DETai tik nurodo momentą, kada bus įvykdytas mūsų aktyviklis, tai yra, jei aktyviklis suaktyvinamas prieš DML įvykį (prieš) arba po (po).
INSERT | Ištrinti | ATNAUJINTITai mums pasakys, koks bus sakinys, kurį naudosime aktyvinimui suaktyvinti, įterpti, jei norite įvesti duomenis, ištrinti, jei norite juos ištrinti, arba atnaujinti, jei norite jį pakeisti.
ON lentelės pavadinimasTai rodo lentelę, susietą su mūsų aktyvikliu.
KIEKVIENAI EILEITai tik nurodo, kad aktyviklis bus vykdomas kiekvienoje mūsų lentelės eilutėje, anksčiau apibrėžtoje ON.
The galutinis sql pareiškimas arba instrukcijų blokas bus sakinys ar sakiniai, kuriuos mūsų trigeris įvykdys, kai jis pradės veikti.
Praktinis pavyzdys
Dabar pamatysime praktinį pavyzdį, kaip užprogramuoti trigerį parduoti autobusų bilietus tam tikram maršrutui, kol yra laisvų vietų.
Galime naudoti bet kokią programinę įrangą, kuri priima aktyviklius ir saugomus procesus.
1 -asis Mes kuriame duomenų bazę:
2 -as iš eilės savo duomenų bazėje sukuriame dvi lenteles. Vienas iš jų yra vieta, kur laikysime parduodamus bilietus, o kitas sukurtas tam, kad žinotume, kiek bilietų galima įsigyti konkrečiai kelionei.
Čia yra lentelė, kurioje bus informacija apie parduotų bilietų skaičių:
Tada sukuriame lentelę, kurioje išsaugome informaciją apie kiekvienos konkrečios kelionės bilietų skaičių:
3 dabar kuriame stalą išsaugoti įvairias keliones:
4. Sukūrę duomenų bazę ir lenteles, sukursime trigerio SQL užklausą, tačiau prieš tai turime žinoti, kas yra NAUJI ir SENI identifikatoriai trigeriuose.
Kad mūsų trigeris būtų susijęs su vienu ar daugiau konkrečių lentelės stulpelių, turime naudoti aukščiau paminėtus identifikatorius NAUJAS IR SENAS.
SENAS: nurodo seną stulpelio vertę
NAUJIENA: naujos vertės, kurią ji gali turėti.
Pavyzdžiui: OLD.idtrip arba NEW.idtrip.
Su INSERT pareiškimas Mes galime naudoti tik NAUJĄ identifikatorių, nes naudojant INSERT sukurta funkcija yra įvesti naujas vertes į stulpelį ar stulpelius.
Jei naudosime DELETE teiginys šiuo atveju turime naudoti SENĄ identifikatorių, nes naudodami DELETE mes ištriname anksčiau jau buvusias reikšmes.
Kita vertus, jei naudosime UPDATE pareiškimas Galime naudoti SENĄ ir NAUJĄ, nes galime remtis senomis ar naujomis vertėmis, nes pakeisime jau buvusius įrašus kitoms vertėms.
Dabar, kai suprantame identifikatorius, sql teiginys atrodytų taip:
Jei vykdytume SQL teiginį ją palaikančioje programoje, tai tikrai pamatytume trigeris buvo sukurtas.
Norėdami pamatyti, kaip tai veikia, pristatome keletą loginių kelionių autobusu vertybių, pavyzdžiui:
Čia į kelionę įvedžiau identifikatorių 1, kad yra 45 laisvos vietos.
Po to mes parduodame bilietą, pavyzdžiui, bilietą, atitinkantį 14 vietą:
Atlikdami šią užklausą, eidami į lauką „dabartinis_pasiekiamumas“, pamatysime, kad 45 pasikeitė į 44, nes buvo suaktyvintas „atnaujinimo prieinamumo“ aktyviklis.
The trigerių naudojimo privalumai yra tai, kad galima užprogramuoti skirtingus naudojimo atvejus ir išlaikyti duomenų bazės vientisumą, tai yra, suteikia mums galimybę sukurti tvarką, kuri automatiškai atlieka tam tikrus veiksmus, nereikia to daryti rankiniu būdu. Tai labai tiktų bet kokios rūšies informacijai patvirtinti arba tam tikram tolesniam duomenų bazės judėjimo stebėjimui.
Kitas labai įdomus pavyzdys, kaip ką tik minėjau patvirtinimuose, yra pilnametystės nustatymas prieš sakant sakinį, pavyzdžiui:
Pamatę trigerių kūrimo pavyzdžius, turime žinoti, kaip pasiekti trigerio informaciją. Tam naudosime sakinius:
Norėdami pamatyti aktyviklius mūsų duomenų bazėje:
RODYTI TRIGGERIUSKita vertus, jei norime pamatyti šiuo metu sukurto trigerio informaciją:
RODYTI CREATE TRIGGER student_BU_triggerGaliausiai, pamatę, kaip sukuriami ir rodomi aktyvikliai, mes pamatysime, kas yra teiginys, naudojamas pašalinti mūsų duomenų bazėje esantį trigerį.
Norėdami tai padaryti, mes tiesiog turime naudoti įprastą ištrynimo komandą: lašas.
DROP TRIGGER [IF_EXISTS] trigerio_pavadinimasAr jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką