Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้าง MySQL Stored Procedure ดึงข้อมูลจากตารางโดยใช้ Cursor


ต่อไปนี้คือ Stored Procedure ซึ่งดึงเรคคอร์ดจากคอลัมน์ name ของตาราง student_info ที่มีข้อมูลดังนี้:

mysql> Select * from Student_info; 
+-----+---------+------------+------------+ 
| id  | Name    | Address    | Subject    | 
+-----+---------+------------+------------+ 
| 101 | YashPal | Amritsar   | History    | 
| 105 | Gaurav  | Chandigarh | Literature | 
| 125 | Raman   | Shimla     | Computers  | 
| 127 | Ram     | Jhansi     | Computers  | 
+-----+---------+------------+------------+ 
4 rows in set (0.00 sec) 
mysql> Delimiter // 
mysql> CREATE PROCEDURE cursor_defined(OUT val VARCHAR(20)) 
    -> BEGIN 
    -> DECLARE a,b VARCHAR(20); 
    -> DECLARE cur_1 CURSOR for SELECT Name from student_info; 
    -> DECLARE CONTINUE HANDLER FOR NOT FOUND 
    -> SET b = 1; 
    -> OPEN CUR_1; 
    -> REPEAT 
    -> FETCH CUR_1 INTO a; 
    -> UNTIL b = 1 
    -> END REPEAT; 
    -> CLOSE CUR_1; 
    -> SET val = a; 
    -> END// 
Query OK, 0 rows affected (0.04 sec) 
mysql> Delimiter ; 
mysql> Call cursor_defined2(@val); 
Query OK, 0 rows affected (0.11 sec) 
mysql> Select @val; 
+------+ 
| @val | 
+------+ 
| Ram  | 
+------+ 
1 row in set (0.00 sec)

จากชุดผลลัพธ์ข้างต้น เราเห็นว่าพารามิเตอร์ val ได้ค่า 'Ram' เพราะมันคือค่าสุดท้ายของคอลัมน์ 'Name'