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

MySQL IF স্টেটমেন্ট স্টোরড প্রোসিজারে কীভাবে ব্যবহার করবেন?

MySQL IF স্টেটমেন্ট স্টোরড প্রোসিজারের ভিতরে একটি বেসিক কন্ডিশনাল কনস্ট্রাক্ট ইমপ্লিমেন্ট করে। এর সিনট্যাক্স নিচে দেওয়া হলো:

IF expression THEN statements; END IF;

এটি অবশ্যই সেমিকোলন দিয়ে শেষ হতে হবে। 'student_info' টেবিলের মানগুলো ব্যবহার করে IF স্টেটমেন্ট স্টোরড প্রোসিজারে কীভাবে ব্যবহার করা যায় তা প্রদর্শন করা হলো:

mysql> SELECT * FROM student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Jaipur     | Literature |
| 125  | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

নিচের কোয়েরি 'coursedetails_IF' নামক একটি প্রোসিজার তৈরি করবে যাতে IF স্টেটমেন্ট আছে:

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IF(IN S_Subject VARCHAR(20), OUT S_Course VARCHAR(20))
    -> BEGIN
    -> DECLARE Sub VARCHAR(20);
    -> SELECT Subject INTO Sub FROM Student_info WHERE S_Subject = Subject;
    -> IF Sub = 'Computers' THEN
    -> SET S_Course = 'B.Tech(CSE)';
    -> END IF;
    -> END //
Query OK, 0 rows affected (0.00 sec)

এখন, এই প্রোসিজার আহ্বান করলে নিচের ফলাফল পাওয়া যায়:

mysql> DELIMITER ; //
mysql> CALL coursedetails_IF('Computers', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT @S_Course;
+-------------+
| @S_Course   |
+-------------+
| B.Tech(CSE) |
+-------------+
1 row in set (0.00 sec)
  1. MySQL স্টোরড প্রোসিডিউর কীভাবে অ্যাল্টার করবেন?

  2. MySQL স্টোরড প্রোসিডিউরের ভেতরে ROLLBACK ট্রানজ্যাকশন কীভাবে করবেন?

  3. এক MySQL স্টোরড প্রোসিডিউর অন্য স্টোরড প্রোসিডিউর কল করতে পারে কিনা?

  4. MySQL-এ স্টোরড প্রোসিজার কল করে SELECT চালানো