我在MySQL中使用了一个游标,但它总是运行一次,然后我期待。 像这样的代码:
drop PROCEDURE if exists test_sp;
DELIMITER //
CREATE PROCEDURE test_sp()
BEGIN
DECLARE varid int;
DECLARE varExit_loop BOOLEAN;
DECLARE cursor_name CURSOR FOR
SELECT id
FROM test;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET varExit_loop = TRUE;
drop table if exists test;
create table test
(id int);
insert into test
values
(1),
(2),
(3);
OPEN cursor_name;
test_loop: LOOP
FETCH cursor_name INTO varid;
select varid;
IF varExit_loop THEN
CLOSE cursor_name;
LEAVE test_loop;
END IF;
END LOOP test_loop;
END; //
DELIMITER ;
运行SP后,它将返回4个结果,1,2,3和另外3个。
有没有办法避免再增加3个?
答案 0 :(得分:1)
我搬家了
2
正好在
之下IF varExit_loop THEN
CLOSE cursor_name;
LEAVE test_loop;
END IF;
END LOOP test_loop;
它工作正常。