PhpMyAdmin - Funkcije i okidači

Sadržaj

Funkcije su vrlo slične Pohranjeni postupci (SP), razlika leži u nekim pojedinostima, a glavna je u tome što oni vraćaju samo jednu vrijednost, kada SP može vratiti više od jedne, dodatno nam ne treba varijabla za spremanje dobivene vrijednosti pa je mnogo lakše koristiti unutar SELECT .

Stvaranje funkcijeCilj funkcije je izolirati logiku iza određenih elemenata kako bi ih bilo lakše koristiti, na taj način možemo dokumentirati bazu podataka i njezin rad te biti u mogućnosti pojednostaviti radnje aplikacije koje bi mogle komunicirati s bazom podaci. Za izradu funkcije koristit ćemo sljedeće elemente:

  • The Okvir za upite, gdje možemo napisati funkciju.
  • Promjena graničnika.
  • Mehanizam uređivanja i manipulacije funkcije.

Pogledajmo kako definirati funkciju kroz primjer:

 CREATE FUNCTION get_country_name (param_country_code CHAR (2)) POVRATAK VARCHAR (50) ČITA SQL PODACI POČINJU DECLARE var_country_name VARCHAR (50) Zadana vrijednost "nije pronađeno"; SELECT description FROM country WHERE code = param_country_code INTO var_country_name; POVRATAK var_country_name; KRAJ // 
Kao što vidimo, sintaksa je vrlo slična onoj u SP, samo što ovdje ne definiramo vrijednosti U Y OUT ako ne definiramo parametre koje unose i deklariramo jednu vrijednost koja će biti POVRATAK.
Kad idemo na odjeljak Rutine Na stranici sa strukturom u bazi podataka vidjet ćemo da se to odražava na sljedeći način:

Nakon što smo stvorili svoju funkciju, da vidimo kako je možemo testirati, ova funkcija koju koristimo kao test ono što radi je konzultiranje s tablicom zemalja i vraćanje imena zemlje kada zatražimo kôd, u slučaju ne pronalazeći, vraća nam se nije pronađeno:

 SELECT CONCAT ('ca->', get_country_name ('ca'), ', zz->', get_country_name ('zz')) kao test; 
Jednostavno radimo odabir s CONCAT -om kako bismo pridružili rezultate u nizu i dobit ćemo sljedeće:
 ca-> Kanada, zz-> nije pronađeno
Kao što vidimo, mnogo je lakše od konstruiranja upita koje će svaka zemlja zasebno konzultirati.

OkidačiThe Okidači razlikuju se od funkcija i Pohranjeni postupciNe mora ih korisnik pozivati, one će se dogoditi kada se neka radnja izvrši na tablici na koju su povezane, što nas dovodi do druge razlike funkcija, a to je da su općenite; Okidači ako su povezani s određenom tablicom.
Pogledajmo kako stvoriti Okidač:

 CREATE TRIGGER after_book_insert NAKON UMETANJA NA KNJIGI ZA SVAKI RED POČINJE AŽURIRANJE SET SET total_page_count = total_page_count + NEW.page_count WHERE id = NEW.author_id; KRAJ // 
Kao što vidimo, također moramo definirati novi razdjelnik // unutar okvira upita kako bismo mogli uključiti sve upute Okidač, u slučaju primjera povezujemo ga u Nakon Umetanja to jest, nakon umetanja i izvršavanja definirane radnje, to pomaže bazi podataka da samostalno upravlja radnjama koje se događaju.

Jednom Okidač Kad odemo na stranicu sa strukturom tablice, vidjet ćemo da je dostupna:

wave wave wave wave wave