gpt4 book ai didi

mysql - DECLARE CONTINUE HANDLER FOR NOT FOUND SET 变量不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:21 24 4
gpt4 key购买 nike

您好,我正在使用 mysql 中的存储过程

当我尝试

 DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_prefrences=1 ;

并尝试编译,它在 phpmyadmin 中给出了一个错误。

1193 - Unknown system variable 'no_more_prefrences'

我在另一个存储过程中使用了不同名称的同一行。它工作正常。

这是我的存储过程。

DELIMITER $$
DROP PROCEDURE IF EXISTS get_all_children_of_lob$$

CREATE PROCEDURE get_all_children_of_lob(
IN parent_id INT
)

BEGIN

DECLARE lob_preferenceid INT;
DECLARE lob_parentid INT;
DECLARE lob_value VARCHAR(100);
DECLARE lob_isavailable INT;
DECLARE lob_ischildavailable INT;
DECLARE lob_isuseradded INT;

DECLARE cur CURSOR for select PreferenceID,ParentID,Value,IsAvailable,IsChildAvailable,IsUserAdded from table WHERE ParentID=parent_id ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_prefrences=1 ;

CREATE TEMPORARY TABLE IF NOT EXISTS temp_lob(

ID int(11) NOT NULL AUTO_INCREMENT,
preferenceIDTmp INT(11),
parentIDTmp INT(11),
valueTmp varchar(255),
isAvailableTmp INT(11),
isChildAvailableTmp INT(11),
isUserAddedTmp INT(11),
PRIMARY KEY (ID)
);

SET no_more_prefrences=0;
OPEN cur;

dept_loop:WHILE(no_more_prefrences=0) DO

FETCH cur INTO lob_preferenceid,lob_parentid,lob_value,lob_isavailable,lob_ischildavailable,lob_isuseradded;
IF no_more_prefrences=1 THEN
LEAVE dept_loop;
END IF;

INSERT INTO temp_lob(preferenceIDTmp,parentIDTmp,valueTmp,isAvailableTmp,isChildAvailableTmp,isUserAddedTmp)
VALUES (lob_preferenceid,lob_parentid,lob_value,lob_isavailable,lob_ischildavailable,lob_isuseradded);

CALL get_all_children_of_lob(lob_preferenceid);

END WHILE dept_loop;

CLOSE cur;

END$$
DELIMITER ;

我不知道为什么会这样,请帮忙:(

最佳答案

似乎缺少局部变量声明。

添加:

DECLARE no_more_prefrences INT;

关于mysql - DECLARE CONTINUE HANDLER FOR NOT FOUND SET 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com