سلام
من امروز این تاپیک رو دیدم، هرچند که زمان زیادی از افتتاح اون گذشته، ولی لاذم میدونم یه نمونه کد و توضیح مختصری در باره Stored Procedures بدم.
به نمونه کد زیر توجه نمایید:
کد زیر با این فرض نوشته شده است که یک جدول با نام Order داریم که میخواهیم order_id کسی که بیشترین سفارش را داده است را نمایش دهیم. کد آن از قرار زیر است:
delimiter //
CREATE PROCEDURE largest_order(out largest_id int)
BEGIN
declare this_id int;
declare this_amount float;
declare l_id int;
declare l_amount float default 0.0;
declare done int default 0;
declare continue handler FOR NOT FOUND set done = 1;
declare cursor_name1 cursor for select order_id, amount from orders;
open cursor_name1;
REPEAT
fetch cursor_name1 into this_id , this_amount;
IF NOT done THEN
IF this_amount > l_amount THEN
set l_amount = this_amount;
set l_id = this_id;
END IF;
END IF;
until done END REPEAT;
close cursor_name1;
set largest_id = l_id;
END;
//
delimiter ;
برای فراخوانی و استفاده از این "روال ذخیره شده" یا Stored Procedure از کد زیر استفاده میکنیم:
CALL largest_order(@largestid);
select @largestid;
کدها رو فعلا توضیح نمیدم تا اگر از این مطلب بازدید شد و به به ادامه علاقه نشون داده شد، این کدها رو خط به خط توضیح میدم.
اگر مطلب براتون مفید بوده، لطفا تشکر فراموش نشه