Turinys
„PostgreSQL“ leidžia funkcijoms atlikti naudoti skirtingas kalbas, ši funkcija yra gana naudinga ir daro ją viena lanksčiausių ir galingiausių duomenų bazių, tačiau taip pat leidžia veikia kaip trigeriai, tai yra funkcijos, kurios automatiškai nustato, koks veiksmas įvyko, ir suaktyvina kitą veiksmą, tai yra, jei į lentelę įterpiame, pvz. paleidiklis atnaujinti kitame, pateikti labai elementarią operaciją, kas yra trigeris.Funkcijos kaip trigeriai
Nė vienas vertas duomenų bazės variklis neturėtų būti be galimybės naudotis paleidiklius automatiškai aptikti ir tvarkyti duomenų pokyčius. „PostgreSQL“ siūlo teiginio lygio ir įrašo lygio aktyviklius; tie, kurie yra sakinio lygmenyje, paleidžiami vieną kartą kiekvienam sakiniui, o tie, kurie yra registrų lygmenyje, gali būti vykdomi daug kartų, pavyzdžiui, jei ATNAUJINTI kuris turi įtakos 1500 įrašų, sakinio lygio aktyviklis bus paleistas tik vieną kartą, o įrašo paleidiklis - iki 1500 kartų.
Kitas svarbus šios temos punktas yra instrukcijų skirtumas PRIEŠ, DESPUES DE ir Vietoj APIE trigeryje.
Suveikiantis trigeris PRIEŠ suveikia prieš vykdant komandą, suteikiant galimybę pakeisti, atšaukti ar manipuliuoti duomenimis prieš jiems pasikeičiant, a PO trigerio jis suaktyvinamas atlikus pakeitimą, taip suteikiant galimybę gauti jau pakeistus duomenis, tokio tipo aktyviklis dažniausiai naudojamas žurnaluose ir replikacijos funkcijose, Vietoj trigerio Jis vykdomas vietoj veiksmo, kuris paprastai būtų atliekamas, taip pat dar vienas ypatumas yra tas, kad jis veikia tik su pažiūromis.
Sukurkite funkciją su trigeriu
Kai kalbame apie funkcijas, žinome, kad joms atlikti galime naudoti kitas kalbas, o tokių funkcijų kaip trigeriai atveju taip pat galima naudoti beveik bet kokią kalbą, tačiau PL / pgSQL Mėgstamiausia atlikti šias užduotis, todėl šis pavyzdys, kurį matysime paveikslėlyje, bus padarytas šia kalba, pamatę pavyzdį, mes jį išsamiai paaiškinsime:
1. Funkcija apibrėžiama kaip trigeris ir gali būti naudojama bet kurioje lentelėje, kurioje yra stulpelis upd_ts. Šio stulpelio vertė bus pakeista prieš grąžinant. Skambinama renginio metu PRIEŠ nes jei jis būtų naudojamas DESPUES DE visi naujo įrašo pakeitimai bus ignoruojami.
2. Trigeris suveiks prieš įrašant įrašą.
3. Ši funkcija pasiekiama tik „PostgreSQL“ 9.0 ar naujesnė versija leidžia mums keisti tik tuos įrašus, kurie iš tikrųjų buvo paveikti, ankstesnėse versijose reikėjo palyginti senus ir naujus laukus, tačiau tai nepalaikoma įvykio INSTEAD.
4. Mes susiejame trigerį su lentele.
Tuo baigiame šį vadovėlį, kuriame pamatėme, kaip sukurti trigerį, kuris bus įgyvendintas funkcijoje, be to, žinome, kokius įvykius galime naudoti, kai mums jų reikia.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką