hi i am using a stored procedure in mysql
when i try to
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_prefrences=1 ;
and try to compile , it is giving an error in phpmyadmin .
1193 – Unknown system variable ‘no_more_prefrences’
i have used the same line with a different name in another stored procedure . it is working correctly .
this my stored procedure .
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 ;
i have no idea why is this happening , please help 🙁
It seems the local variable declaration is missing.
Add: