0
MYSQL에서 커서를 사용했지만 항상 한 번 더 실행됩니다. 이 같은 코드 : 나는 SP를 실행 한 후MYSQL에서 CURSOR를 사용하여 한 번 더 실행하지 않으려면 어떻게해야합니까?
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 ;
, 그것은 4 개 결과, 1,2,3 및 반환됩니다 더 한 3
3 일 더 많은 것을 피하기 위해 어떤 방법이 있나요?
고맙습니다.
은 가져 오기 검사와 관련이없는 모든 코드를 가져 오기 확인 후에 이동해야합니다. (다시 말하면,'END IF;'다음에'select varid;'를 이동하십시오.) – Uueerdo
결과 집합 (또는 여러 집합)이 다시 돌아올 때 무엇을 수행하려고합니까? – Drew