PostgreSQL - Funcții precum Triggers

Cuprins
PostgreSQL ne permite să folosim diferite limbi pentru a efectua funcții, această funcționalitate este destul de utilă și o face una dintre cele mai flexibile și mai puternice baze de date, dar ne permite, de asemenea, să facem funcționează ca declanșatoare, adică funcții care detectează automat ce acțiune a avut loc și declanșează o acțiune diferită, adică dacă inserăm într-un tabel de exemplu, un declanșator pentru a actualiza în altul, pentru a pune o operațiune foarte simplă a ceea ce este un declanșator.
Funcții precum declanșatoarele
Niciun motor de baze de date care nu merită ar trebui să fie lipsit de capacitatea de utilizare declanșează pentru a detecta și gestiona automat modificările datelor. PostgreSQL oferă declanșatoare la nivel de declarație și la nivel de înregistrare; cele care se află la nivelul propoziției rulează o dată pentru fiecare propoziție, în timp ce cele care se află la nivelul registrelor pot rula de multe ori, de exemplu dacă facem o ACTUALIZAȚI care afectează 1500 de înregistrări, un declanșator la nivel de propoziție ar rula o singură dată, în timp ce declanșatorul de înregistrare ar rula de până la 1500 de ori.
Un alt punct important în acest subiect este distincția făcută între instrucțiuni INAINTE DE, DISPUES DE si IN SCHIMB DE într-un trăgaci.
Un declanșator care funcționează cu INAINTE DE se declanșează înainte de executarea comenzii, oferind posibilitatea de a modifica sau anula sau manipula datele înainte de a se modifica, a DUPĂ declanșare este declanșat după executarea modificării, oferind astfel posibilitatea de a obține datele deja modificate, acest tip de declanșator este utilizat mai ales în jurnale și funcții de replicare, În locul declanșatorului Se execută în locul acțiunii care ar fi efectuată în mod normal, de asemenea, o altă particularitate a acestui lucru este că funcționează doar cu vizualizările.
Construiți o funcție cu Trigger
Ca și când vorbim despre funcții, știm că putem folosi alte limbi pentru a le realiza, în cazul funcțiilor precum declanșatoarele, este posibil să se utilizeze aproape orice limbă, totuși PL / pgSQL Este favorit să îndeplinești aceste sarcini, prin urmare următorul exemplu pe care îl vom vedea în imagine va fi făcut în această limbă, după ce vom vedea exemplul, îl vom explica în detaliu:

1. Funcția este definită ca un declanșator și poate fi utilizată în orice tabel care are o coloană upd_ts. Valoarea acestei coloane va fi modificată înainte de efectuarea returnării. Apelul se face la eveniment INAINTE DE pentru că dacă ar fi folosit în DISPUES DE toate modificările aduse noii înregistrări vor fi ignorate.
2. Declanșatorul se va declanșa înainte ca înregistrarea să fie stocată.
3. Această funcționalitate este disponibilă numai în PostgreSQL 9.0 sau mai mare ne permite să modificăm numai înregistrările care au fost efectiv afectate, în versiunile anterioare era necesar să facem comparații între câmpul vechi și cel nou, însă acest lucru nu este acceptat pentru evenimentul INSTEAD OF.
4. Legăm Triggerul de masă.
Cu aceasta terminăm acest tutorial în care am văzut cum să creăm un Trigger care va fi implementat într-o funcție, pe lângă faptul că știm ce evenimente putem folosi atunci când avem nevoie de ele.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