MYSQL存储过程-练习5 游标

MYSQL存储过程-练习5 游标

复制代码
 1 DELIMITER $
 2 CREATE PROCEDURE sp_cur()
 3 BEGIN
 4   DECLARE bkname VARCHAR(200);
 5   DECLARE done INT DEFAULT 0; #游标结束标志
 6   
 7   DECLARE cur CURSOR FOR SELECT bookname FROM book;     #声明游标
 8   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;  #指定游标结束时的返回值
 9   
10   OPEN cur;  #打开游标
11     lp1:LOOP
12       FETCH cur INTO bkname;   #获取结果
13       IF done = 1 THEN         #当游标的返回值为 1 时 退出循环
14         leavr lp1;
15       END IF;
16       SELECT bkname;
17       END LOOP;
18         
19    CLOSE cur;  #关闭游标
20    
21 END$
22 DELIMITER;
复制代码

 执行存储过程,检查游标运行结果

复制代码
 1 mysql> call sp_cur();
 2 +------------------------+
 3 | bkname                 |
 4 +------------------------+
 5 | HARRY POTER-魔法石1    |
 6 +------------------------+
 7 1 row in set (0.02 sec)
 8 
 9 +---------------------+
10 | bkname              |
11 +---------------------+
12 | HARRY POTER-密室2   |
13 +---------------------+
14 1 row in set (0.02 sec)
15 
16 +------------------------+
17 | bkname                 |
18 +------------------------+
19 | HARRY POTER-凤凰社3    |
20 +------------------------+
21 1 row in set (0.03 sec)
22 
23 +------------------------+
24 | bkname                 |
25 +------------------------+
26 | HARRY POTER-火焰杯4    |
27 +------------------------+
28 1 row in set (0.06 sec)
29 
30 +---------------------------+
31 | bkname                    |
32 +---------------------------+
33 | HARRY POTER-死亡圣器5     |
34 +---------------------------+
35 1 row in set (0.09 sec)
36 
37 Query OK, 0 rows affected (0.13 sec)
复制代码

 

posted @   _飞翔的荷兰人  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示