Stored Procedures and Functions در Mysql چیه ؟

Mds

Active Member
سلام به همگی.
بچه ها خیلی وقته می خوام بدونم Stored Procedures and Functions در Mysql چیه ؟:sad:
اگر ممکن هست با نمونه کد توضیح دهید.
ممنون
 

peyman1987

Member
استورد پروسیجرها دقیقا همون کار توابعی رو انجام میدن که ما با زبانهای برنامه نویسی مینویسیم. این توابع یه سری دستورات معمولی SQL هستند که تحت یه نام خاص که مدیر دیتابیس انتخاب میکنه توی سرور ذخیره میشن و هر وقت شما بخواین اجراشون کنین کافیه نامشون رو فراخوانی کنین. این قابلیت از سالها پیش در اوراکل و SQL Server وجود داشت ولی توی MySQL از نسخه 5 به بعد ازش پشتیبانی میشه. مثلا کد زیر یه استورد پروسیجر ساده است که هر وقت فراخوانی بشه تمام رکوردهای جدول Table1 رو برمیگردونه.

نحوه تعریف :

کد:
CREATE PROCEDURE Test ()
BEGIN
   	SELECT * FROM Table1;
END;

نحوه فراخوانی :
کد:
CALL Test ();
 
  • Like
Reactions: Mds

Mds

Active Member
استورد پروسیجرها دقیقا همون کار توابعی رو انجام میدن که ما با زبانهای برنامه نویسی مینویسیم. این توابع یه سری دستورات معمولی SQL هستند که تحت یه نام خاص که مدیر دیتابیس انتخاب میکنه توی سرور ذخیره میشن و هر وقت شما بخواین اجراشون کنین کافیه نامشون رو فراخوانی کنین. این قابلیت از سالها پیش در اوراکل و SQL Server وجود داشت ولی توی MySQL از نسخه 5 به بعد ازش پشتیبانی میشه. مثلا کد زیر یه استورد پروسیجر ساده است که هر وقت فراخوانی بشه تمام رکوردهای جدول Table1 رو برمیگردونه.

نحوه تعریف :

کد:
CREATE PROCEDURE Test ()
BEGIN
       SELECT * FROM Table1;
END;
نحوه فراخوانی :
کد:
CALL Test ();


من این کد رو نوشتم ، اما mysql اجراش نکرد !!!
 
آخرین ویرایش:

peyman1987

Member
این کد رو کجا نوشتین؟
توی PHPMyAdmin کار نمیکنه.
باید با کنسول MYSQL بالا بیاین و اونجا اجراش کنین.

کد:
DELIMITER //
CREATE PROCEDURE test()
           SELECT * FROM table;
DELIMITER ;

CALL test();

توی کد بالا یادم رفته بود دو خط کم گذاشته بودم.
 
آخرین ویرایش:
  • Like
Reactions: Mds

peyman1987

Member
کار این دستور عوض کردن علامتیه که باهاش دستورات یک خط SQL تموم میشه. بصورت پیش فرض ; برای اتمام دستورات استفاده میشه ولی برای اینکه توی خود Stored Procedure نمیشه اینکار رو کرد ما اول این علامت رو به یه علامت دلخواه ( من اینجا گذاشتم // ) تغییر میدیم ، کد رو اجرا میکنیم و بعد دوباره به حالت اول برش میگردونیم.
 

جدیدترین ارسال ها

بالا