< SQL

Tárolt eljárások

Szerző: Sallai András

Copyright © Sallai András, 2022

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Példa adatbázis

create database fer; create table dolgozok ( az int not null primary key auto_increment, nev varchar(50), telepules varchar(50), fizetes double ); insert into dolgozok (nev, telepules, fizetes) values ("Parkos Irén", "Szeged", 2872000), ("Strand Imre", "Szolnok", 2644000), ("Répa Ferenc", "Szeged", 2235000), ("Árkus Béla", "Debrecen", 2352000), ("Tünde Mária", "Szolnok", 2438500);

Tárolt eljárások megtekintése

show procedure status \G

A tartalmát is láthatjuk:

show create procedure proc1 \G

Eljárás készítése

Az eljárásokon belül, normál SQL utasításokat írunk, amiket ; pontosvesszővel zárunk. Azonban, valahogy jeleznünk kell, hogy befejeztük a tárolt eljárást, ezért ideiglenesen megváltoztatjuk az alapértelmezett utasítás szeparátort.

A következő példában két // jel karakter adunk meg szeparátornak. Ezzel jelezzük, hogy vége a tárolt eljárásnak. Az eljáráson belül az utasításokat továbbra is ; pontosvesszővel zárjuk.

Az eljárás írása előtt ki kell választanunk egy adatbázist, amihez csatoljuk az eljárást.

delimiter // create procedure leker() begin select * from dolgozok; end // delimiter ; call leker();

Az elkészült eljárást a call utasítással hívjuk.

Törlés

drop procedure leker;

Jogok beállítása

Felhasználó létrehozása:

create user fer@localhost identified by 'titok';

Eljárások és függvények futtathatók:

grant execute on *.* to fer@localhost;