MySQL স্টোরড প্রসিডিউর তৈরি করার সময় DELIMITER সঠিকভাবে ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ। এটি প্রসিডিউর বডির সেমিকোলন কনফিউশন এড়াতে সাহায্য করে।
সঠিক স্ট্রাকচার
DELIMITER //
CREATE PROCEDURE procedure_name()
BEGIN
IF condition THEN
statement1;
ELSE
statement2;
END IF;
END //
DELIMITER ;
উদাহরণ: সিম্পল প্রসিডিউর
DELIMITER //
CREATE PROCEDURE delimiter_demo()
BEGIN
IF 1 THEN
SELECT "If condition will always true";
ELSE
SELECT "No";
END IF;
END //
DELIMITER ;
কল করুন
CALL delimiter_demo();
ফলাফল
+-------------------------------+
| If condition will always true |
+-------------------------------+
| If condition will always true |
+-------------------------------+
DELIMITER কেন দরকার?
- MySQL ক্লায়েন্ট সেমিকোলন (;) দেখলে স্টেটমেন্ট শেষ মনে করে
- প্রসিডিউর বডিতে একাধিক সেমিকোলন থাকে
DELIMITER //দিয়ে অস্থায়ীভাবে ডিলিমিটার বদলানো হয়END //প্রসিডিউর শেষে নতুন ডিলিমিটার ব্যবহারDELIMITER ;দিয়ে ডিফল্টে ফেরানো হয়
সাধারণ ভুল
-- ভুল: DELIMITER বদলানোর আগে CREATE PROCEDURE লেখা
CREATE PROCEDURE test() BEGIN SELECT 1; END; -- এখানেই এক্সিকিউট হয়ে যাবে
-- সঠিক:
DELIMITER //
CREATE PROCEDURE test() BEGIN SELECT 1; END //
DELIMITER ;