ناساندنی Stored Functions
فەنکشنەکان لە MySQL بریتیین لە پارچە کۆدێک کە کردارێکی دیاریکراو ئەنجام دەدەن و ئەنجامێک دەگەڕێننەوە (Return). بەکارهێنانی فەنکشنەکان وادەکات کۆدەکانت ڕێکخراوتر بن و ئاسانتر بەڕێوەببرێن.
هەنگاوی یەکەم: دروستکردنی فەنکشن
بۆ دروستکردنی فەنکشن، پێویستە فەرمانی CREATE FUNCTION بەکاربهێنین. پێویستە جۆری داتای گەڕاوە (RETURN) دیاری بکەین.
DELIMITER //
CREATE FUNCTION CalculateTax(price DECIMAL(10,2))
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
RETURN price * 0.15;
END //
DELIMITER ;لێرەدا ئێمە فەنکشنێکمان بە ناوی CalculateTax دروست کرد کە باج بۆ نرخێک دەژمێرێت. DETERMINISTIC ئاماژەیە بۆ ئەوەی کە فەنکشنەکە هەمیشە هەمان ئەنجام دەدات بۆ هەمان داتا.
هەڵەی باو
یەکێک لە هەڵە باوەکان لەبیرچوونی بەکارهێنانی DELIMITER-ە. ئەگەر ئەمە بەکارنەهێنیت، MySQL وادەزانێت فەنکشنەکە لە نیوەی کۆدەکەدا تەواو بووە.
هەنگاوی دووەم: بەکارهێنانی فەنکشن لە Query
دوای دروستکردنی فەنکشنەکە، دەتوانیت وەک هەر فەنکشنێکی ئاسایی MySQL بەکاری بهێنیت لە ناو SELECT دا.
SELECT product_name, price, CalculateTax(price) AS tax_amount
FROM products;ئەم کۆدە نرخەکان وەردەگرێت و باجەکەیان بەپێی ئەو فەنکشنەی دروستمان کردووە پیشان دەدات. ئەمە وادەکات Query-ی سەرەکی زۆر پاک و ڕوون بێت.
هەنگاوی سێیەم: سڕینەوەی فەنکشن
ئەگەر پێویستت بە فەنکشنەکە نەما، دەتوانیت بە ئاسانی بیسڕیتەوە بە بەکارهێنانی DROP FUNCTION.
DROP FUNCTION IF EXISTS CalculateTax;IF EXISTS باشترە بۆ ئەوەی ئەگەر فەنکشنەکە بوونی نەبوو، سیستەمەکە هەڵە (Error) نەدات.تایبەتمەندییەکانی فەنکشن
- دەتوانێت یەک یان چەند پارامێتەری هەبێت.
- پێویستە بە لایەنی کەمەوە یەک بەها بگەڕێنێتەوە.
- ناتوانێت کردارەکانی وەک
INSERTیانUPDATEلە ناو خۆیدا ئەنجام بدات بۆ خشتەکان (ئەمە کاری Stored Procedures-ە).
ئەرکی ڕاهێنان
هەوڵ بدە فەنکشنێک دروست بکەیت بە ناوی CalculateDiscount کە نرخێک وەردەگرێت و داشکاندنی 20% بۆ دەکات. پاشان بەکاری بهێنە بۆ خشتەیەک کە نرخەکانی تێدایە.
ئەمانە ئەم فێرکارییەیان تەواوکردووە
1 فێرخواز تەواویان کردووە