1

mysqlストアドプロシージャ内でカーソルを再利用する正しい方法は何ですか?

以下のようにしていますが、見た目が正しくありません。これを行う正しい方法を知っている人はいますか?

DELIMITER $$

USE `test`$$

DROP PROCEDURE IF EXISTS `fred`$$

CREATE DEFINER=`root`@`windows7.home` PROCEDURE `fred`()
BEGIN
    DECLARE X INT;
DECLARE done INT DEFAULT FALSE;
    DECLARE myType INT;
    DECLARE cur1 CURSOR FOR SELECT val FROM checkval;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    SET X = 10;
    WHILE X  >= 2 DO
##############
    OPEN cur1;
    FETCH cur1 INTO myType;
    read_loop: LOOP
        IF done THEN
            LEAVE read_loop;
        END IF;
        INSERT INTO myType VALUES (myType);
        FETCH cur1 INTO myType;
    END LOOP read_loop;                              
CLOSE cur1;
        SET  X = X-1;
        SET done=FALSE;
    ##################
    END WHILE;
    END$$

DELIMITER ;

それを開始した質問は次のとおりです: ストアド プロシージャの While ループが 8 回ではなく 2 回だけループする

4

0 に答える 0