mysql 多个游标_如何在MySQL中的单个存储过程中使用多个游标

manual它说

Cursor declarations must appear before handler declarations and after variable and condition declarations.

此外,你不能有多个继续处理程序(MySQL应该如何知道哪个继续处理程序与哪个游标相关?不幸的是你不能指定它),除非你嵌套它们,例如:

DELIMITER $$

CREATE PROCEDURE `spTest`(OUT v1 VARCHAR(500), OUT v2 VARCHAR(500))

BEGIN

BLOCK1:BEGIN

DECLARE variable1 INT;

DECLARE _cur_1 CURSOR FOR SELECT id FROM tbl_1;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET _cur1Done = 1;

LOOP1: LOOP

FETCH _cur_1 INTO variable1;

IF _cur1Done THEN

CLOSE _cur_1;

LEAVE LOOP1;

END IF;

BLOCK2:BEGIN

DECLARE variable2 INT;

DECLARE _cur_2 CURSOR FOR SELECT id FROM tbl_2;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET _cur2Done = 1;

OPEN _cur_2;

LOOP2: LOOP

FETCH _cur_2 INTO variable2;

IF _cur2Done THEN

CLOSE _cur_2;

LEAVE LOOP2;

END IF;

END LOOP LOOP2;

END BLOCK2;

END LOOP LOOP1;

END BLOCK1;

END $$

DELIMITER ;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值