Stored Procedures چییە؟
لە MySQL، Stored Procedure بریتییە لە کۆمەڵێک فەرمانی SQL کە پێکەوە کۆکراونەتەوە و لە ناو داتابەیسدا پاشەکەوت کراون. بەکارهێنانی ئەم ڕێگەیە وادەکات کۆدەکانت دووبارە بەکارهێنراو (Reusable) بن، کاتت بۆ بگەڕێتەوە و ئەدای داتابەیسەکەشت باشتر بێت.
دروستکردنی یەکەم Stored Procedure
بۆ دروستکردنی پرۆسێسێکی نوێ، ئێمە وشەی کلیل DELIMITER بەکاردەهێنین بۆ ئەوەی بە MySQL بڵێین کە کۆتایی فەرمانەکەمان لە کوێدایە.
DELIMITER //
CREATE PROCEDURE GetAllUsers()
BEGIN
SELECT * FROM users;
END //
DELIMITER ;لە نموونەی سەرەوەدا، ئێمە پرۆسێسێکمان بە ناوی GetAllUsers دروست کرد. کاتێک ئەم کۆدە جێبەجێ دەکەیت، MySQL ئەم پرۆسێسە پاشەکەوت دەکات. هەڵەی باو لێرەدا ئەوەیە کە بیرت دەچێت DELIMITER بگێڕیتەوە سەر دۆخی ئاسایی، کە دەبێتە هۆی تێکچوونی فەرمانەکانی دواتر.
بانگکردنی Stored Procedure
دوای ئەوەی پرۆسێسەکەت دروست کرد، دەتوانیت بە ئاسانی بە فەرمانی CALL بانگی بکەیت و ئەنجامەکەی ببینیت.
CALL GetAllUsers();ئەم فەرمانە هەموو ئەو کۆدانەی لە ناو BEGIN و END دا نووسیوتە جێبەجێ دەکات. ئەمە ڕێگەیەکی زۆر خێرایە بۆ ئەنجامدانی کارەکان بەبێ ئەوەی پێویست بکات هەموو جارێک هەمان SELECT بنووسیتەوە.
بەکارهێنانی Parameter لە پرۆسێسەکان
زۆربەی کات پێویستمان بەوەیە زانیاری بدەینە پرۆسێسەکە، بۆ ئەمەش Parameter بەکاردەهێنین. با سەیری نموونەیەکی بەکارهێنانی IN بکەین:
DELIMITER //
CREATE PROCEDURE GetUserById(IN userId INT)
BEGIN
SELECT * FROM users WHERE id = userId;
END //
DELIMITER ;لێرەدا ئێمە بەکارهێنەرێک بەپێی ID-کەی دیاری دەکەین. کاتێک بانگی دەکەیت، دەبێت ژمارەیەک لە نێوان کەوانەکاندا بنووسیت، بۆ نموونە CALL GetUserById(5);.
سڕینەوەی Stored Procedure
ئەگەر پرۆسێسەکەت چیتر پێویست نەبوو، دەتوانیت بە ئاسانی بیسڕیتەوە بە بەکارهێنانی فەرمانی DROP.
DROP PROCEDURE IF EXISTS GetAllUsers;سوودەکانی بەکارهێنانی Stored Procedures
- کەمکردنەوەی قەرەباڵغی نێوان ئەپڵیکەیشن و داتابەیس.
- پاراستنی ئاسایش؛ دەتوانیت ڕێگە بە بەکارهێنەر بدەیت پرۆسێسەکە بانگ بکات بەبێ ئەوەی دەستی بە خشتەکان بگات.
- ئاسانکاری لە نوێکردنەوەی کۆد؛ تەنها لە یەک شوێن کۆدەکە دەگۆڕیت.
ئەرکی ڕاهێنان
ئێستا کاتی ئەوەیە خۆت تاقی بکەیتەوە! پرۆسێسێک دروست بکە بە ناوی 'GetUsersByRole' کە Parameter-ێکی لە جۆری VARCHAR وەربگرێت و هەموو ئەو بەکارهێنەرانە پیشان بدات کە ڕۆڵێکی دیاریکراویان هەیە (بۆ نموونە 'admin').
ئەمانە ئەم فێرکارییەیان تەواوکردووە
1 فێرخواز تەواویان کردووە