MYSQL 的存储过程游标会中途跳出循环 是什么原因?

MYSQL 的存储过程游标会中途跳出循环 是什么原因?,第1张

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET loopend = 0

声明loopend变量。

open IdCursor

loop_label:LOOP

fetch IdCursor into loopend

IF loopend = 0 THEN

leave loop_label

else...

参考以下

CREATE PROCEDURE nested_blocks5(  )

 outer_block: BEGIN

        DECLARE l_status int

        SET l_status=1

        inner_block: BEGIN

                IF (l_status=1) THEN

                        LEAVE inner_block

                END IF

        SELECT 'This statement will never be executed'

        END inner_block

        SELECT 'End of program'

END outer_block

声明一个游标语法

DECLARE v_1 VARCHAR(16)

DECLARE v_2 VARCHAR(16)

DECLARE c_XXX CURSOR FOR

SELECT c_1, c_2

FROM t_1

同时声明一个布尔型的变量FOUND,当循环的条件不成立时,结束循环用的。

DECLARE FOUND BOOLEAN DEFAULT TRUE

DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND = FALSE

在使用游标的时候,要先打开游标,语法:OPEN c_XXX

使用的时候,要先打开游标,取出第一条数据,语法: FETCH c_XXX INTO v_1, v_2

然后才开始执行循环,语法:WHILE FOUND DO

执行需要执行的语句;

取下一条数据放到当前游标中,FETCH c_XXX INTO v_1, v_2

结束循环,语法:END WHILE

结束游标,语法:CLOSE c_cargo。有什么问题我们再沟通啊。不知道你具体要问题的是什么。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8754114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存