কম্পিউটার টিউটোরিয়াল

MySQL-এ স্টোরড প্রোসিডিউর ভিতর IF লজিক দিয়ে অন্য স্টোরড প্রোসিডিউর কল করুন

MySQL-এ একটি স্টোরড প্রোসিডিউর থেকে ইনপুট প্যারামিটার ভিত্তিক করে শর্তসাপেক্ষভাবে (IF) অন্য স্টোরড প্রোসিডিউর কল করা যায়।

সিনট্যাক্স

CREATE PROCEDURE mainProc(IN input INT)
BEGIN
    IF input > 100 THEN
        CALL proc1();
    ELSE
        CALL proc2();
    END IF;
END

সম্পূর্ণ উদাহরণ

১. প্রথম প্রোসিডিউর তৈরি করুন

mysql> DELIMITER //
mysql> CREATE PROCEDURE Hello_Stored_Procedure()
    -> BEGIN
    ->     SELECT 'Hello World!!!';
    -> END //
Query OK, 0 rows affected (0.18 sec)

২. দ্বিতীয় প্রোসিডিউর তৈরি করুন

mysql> CREATE PROCEDURE Hi_Stored_Procedure()
    -> BEGIN
    ->     SELECT 'Hi!!!';
    -> END //
Query OK, 0 rows affected (0.17 sec)

৩. মেইন প্রোসিডিউর তৈরি করুন (IF লজিকসহ)

mysql> CREATE PROCEDURE test(IN input INT)
    -> BEGIN
    ->     IF input > 100 THEN
    ->         CALL Hello_Stored_Procedure();
    ->     ELSE
    ->         CALL Hi_Stored_Procedure();
    ->     END IF;
    -> END //
Query OK, 0 rows affected (0.18 sec)

৪. প্রোসিডিউর কল করুন

mysql> DELIMITER ;
mysql> CALL test(110);

৫. ফলাফল

+----------------+
| Hello World!!! |
+----------------+
| Hello World!!! |
+----------------+
1 row in set (0.00 sec)

মূল পয়েন্ট:

  • DELIMITER // - স্টেটমেন্ট টার্মিনেটর বদলিয়ে প্রোসিডিউর বডিতে ; ব্যবহার করা যায়।
  • CALL proc_name() - প্রোসিডিউর কল করার সিনট্যাক্স।
  • IF ... THEN ... ELSE ... END IF; - কন্ট্রোল ফ্লো (সেমিকোলন লাগে END IF-এ)۔
  • ইনপুট প্যারামিটার: IN (ডিফল্ট), OUT, INOUT।
  • নেস্টেড CALL সমর্থিত (রিকার্সিভ CALL-ও সম্ভব, কিন্তু MAX_SP_RECURSION_DEPTH সেট করতে হয়)।
  1. MySQL Workbench-এ স্টোরড প্রসিজার তৈরি করা

  2. MySQL স্টোরড প্রসিডিউরে WHERE IN() ব্যবহার করা

  3. MySQL স্টোরড প্রসিডিউরে শর্তসাপেক্ষ UPDATE (WHERE ক্লজ সহ)

  4. MySQL 저장 프로시저에서 매개변수 NULL 또는 빈 문자열 체크하기