Tartalomjegyzék

< SQL

Tárolt eljárások

Példa adatbázis

fer.sql
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

Egyetlen eljárás tartalma:

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;