MySQL-এ স্টোরড প্রসিডিউরের ভেতরে DECLARE দিয়ে ভেরিয়েবল ডিক্লেয়ার করে, SELECT ... INTO দিয়ে কলামের মান সেটি রাখা যায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable2034 (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20),
-> StudentAge INT
-> );
Query OK, 0 rows affected (0.49 sec)
mysql> INSERT INTO DemoTable2034 (StudentName, StudentAge) VALUES
('Chris', 23), ('David', 21), ('Robert', 25), ('Mike', 19);
mysql> SELECT * FROM DemoTable2034; +-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | Chris | 23 | | 2 | David | 21 | | 3 | Robert | 25 | | 4 | Mike | 19 | +-----------+------------+
স্টোরড প্রসিডিউর (ভেরিয়েবল ব্যবহার করে)
mysql> DELIMITER //
mysql> CREATE PROCEDURE select_into_variable(IN id INT)
-> BEGIN
-> DECLARE name VARCHAR(50);
-> SELECT StudentName INTO name FROM DemoTable2034 WHERE StudentId = id;
-> SELECT CONCAT('Your Name is= ', name);
-> END //
Query OK, 0 rows affected (0.09 sec)
mysql> DELIMITER ;
কল করা
mysql> CALL select_into_variable(4);
+-------------------------------+
| concat('Your Name is= ',name) |
+-------------------------------+
| Your Name is= Mike |
+-------------------------------+
নোট: SELECT ... INTO শুধু একই রো রিটার্ন করলে কাজ করে। একাধিক রো হলে এরর দেবে। সেক্ষেত্রে কার্সর (Cursor) ব্যবহার করতে হয়।