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

স্টোরড প্রোসিজার কী এবং MySQL স্টোরড প্রোসিজার কীভাবে তৈরি করবেন?

নियमিত কম্পিউটিং ভাষার প্রসঙ্গে, স্টোরড প্রোসিজারকে একটি সাবরুটিন বা সাবপ্রোগ্রাম হিসেবে সংজ্ঞায়িত করা যায় যা ডাটাবেসে সংরক্ষিত থাকে। MySQL-এর প্রসঙ্গে, এটি ডিক্লেরেটিভ SQL স্টেটমেন্টের একটি সেগমেন্ট যা ডাটাবেস ক্যাটালগে সংরক্ষিত থাকে। MySQL-এ স্টোরড প্রোসিজার লিখার আগে ভার্সন চেক করতে হবে কারণ MySQL 5 স্টোরড প্রোসিজার চালু করেছে। স্টোরড প্রোসিজার তৈরির সিনট্যাক্স নিচে দেওয়া হলো:

সিনট্যাক্স

CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) 
[characteristic ...] routine_body
proc_parameter: [ IN | OUT | INOUT ] param_name type
type: Any valid MySQL data type
characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC 
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 
| SQL SECURITY { DEFINER | INVOKER }
routine_body: Valid SQL routine statement

উদাহরণ

নিচের উদাহরণে, 'student_info' টেবিল থেকে সকল রেকর্ড পেতে একটি সাধারণ প্রোসিজার তৈরি করা হলো, যাতে নিচের ডাটা আছে:

mysql> SELECT * FROM student_info;
+-----+---------+------------+------------+
| id  | Name    | Address    | Subject    |
+-----+---------+------------+------------+
| 100 | Aarav   | Delhi      | Computers  |
| 101 | YashPal | Amritsar   | History    |
| 105 | Gaurav  | Jaipur     | Literature |
| 110 | Rahul   | Chandigarh | History    |
+------+---------+------------+------------+
4 rows in set (0.00 sec)

নিচের কোয়েরিগুলো দিয়ে allrecords() নামক স্টোরড প্রোসিজার তৈরি করা হলো:

mysql> DELIMITER //
mysql> CREATE PROCEDURE allrecords()
    -> BEGIN
    -> SELECT * FROM Student_info;
    -> END//
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER ;
  1. MySQL স্টোরড ফাংশন কী এবং কীভাবে তৈরি করবেন?

  2. MySQL ট্রিগার কীভাবে তৈরি ও ব্যবহার করবেন?

  3. MySQL-এ স্টোরড প্রসিজার এবং SELECT-এ IF ফাংশন ব্যবহার

  4. MySQL Workbench-এ স্টোরড প্রসিজার তৈরি করা