„phpMyAdmin“ - funkcijos ir aktyvikliai

Turinys

Funkcijos yra labai panašios į Saugomos procedūros (SP), skirtumas slypi kai kuriose detalėse, iš kurių pagrindinė yra ta, kad jie grąžina tik vieną reikšmę, kai SP gali grąžinti daugiau nei vieną, be to, mums nereikia kintamojo, kad išsaugotume gautą vertę, todėl jį daug lengviau naudoti SELECT .

Funkcijos kūrimasFunkcijos tikslas yra atskirti tam tikrų elementų logiką, kad juos būtų lengviau naudoti, tokiu būdu galime dokumentuoti duomenų bazę ir jos veikimą bei supaprastinti programos veiksmus, kurie galėtų bendrauti su duomenis. Norėdami sukurti funkciją, naudosime šiuos elementus:

  • The Užklausų dėžutė, kur galime parašyti funkciją.
  • Skyriklio keitimas.
  • Funkcijos redagavimo ir manipuliavimo mechanizmas.

Pažiūrėkime, kaip apibrėžti funkciją per pavyzdį:

 KURTI FUNKCIJĄ get_country_name (param_country_code CHAR (2)) RETURNS VARCHAR (50) SKAITYTI SQL DUOMENIS BEGIN DECLARE var_country_name VARCHAR (50) DEFAULT 'not found'; PASIRINKITE aprašymą iš šalies WHERE kodas = param_country_code INTO var_country_name; RETURN var_country_name; GALAS // 
Kaip matome, sintaksė yra labai panaši į SP, tik čia neapibrėžiame IN Y OUT jei ne, mes apibrėžiame parametrus, kuriuos jie įveda, ir deklaruojame vieną reikšmę, kuri bus GRĄŽINTI.
Kai einame į skyrių Rutinos Duomenų bazės struktūros puslapyje pamatysime, kad tai atsispindi taip:

Sukūrę savo funkciją, pažiūrėkime, kaip galime ją išbandyti. Ši funkcija, kurią mes naudojame kaip testą, yra tai, ką ji daro, yra pasikonsultuoti su šalių lentele ir grąžinti šalies pavadinimą, kai prašome kodo. neradęs, jis mus grąžina nerastas:

 Pasirinkite testą CONCAT ('ca->', get_country_name ('ca'), ', zz->', get_country_name ('zz')) kaip testą; 
Mes tiesiog pasirenkame su CONCAT, kad sujungtume rezultatus į eilutę, ir gausime:
 ca-> Kanada, zz-> nerasta
Kaip matome, kiekviena šalis konsultuosis atskirai, o ne kurdama užklausas daug lengviau.

TrigeriaiThe Trigeriai skiriasi nuo funkcijų ir Išsaugotos procedūrosVartotojas jų šaukti neprivalo, jie įvyks, kai veiksmas bus įvykdytas lentelėje, prie kurios jie yra susieti, o tai mus nukreipia į kitą funkcijų skirtumą, tai yra, kad jos yra bendros; Trigeriai jei jie susieti su konkrečia lentele.
Pažiūrėkime, kaip sukurti a Trigeris:

 CREATE TRIGGER after_book_insert PASIRINKUS Knygą KIEKVIENAI EILEI PRADĖTI ATNAUJINTI autorių NUSTATYTI total_page_count = total_page_count + NEW.page_count WHERE id = NEW.author_id; GALAS // 
Kaip matome, mes taip pat turime apibrėžti naują skyriklį // užklausos lauke, kad galėtume įtraukti visas Trigeris, pavyzdžio atveju susiejame jį su Po Įterpti tai yra, atlikus įterpimą ir atlikus apibrėžtą veiksmą, tai padeda duomenų bazei savarankiškai valdyti veiksmus, kai jie įvyksta.

Kartą Trigeris Kai pateksime į lentelės struktūros puslapį, pamatysime, kad jis yra prieinamas:

wave wave wave wave wave