MySQL
[MYSQL] 프로시저 작성2( PROCEDURE )
개발_메모장
2020. 11. 20. 23:27
하나의 프로시저 내에서 2개의 조회조건으로 커서2개 실행
DROP PROCEDURE IF EXISTS '프로시저명';
CREATE PROCEDURE `'프로시저명'`()
BEGIN
BEGIN -- 두번째 커서 시작
DECLARE done INT DEFAULT FALSE;
DECLARE 선언할 변수 INT DEFAULT 0;
DECLARE cursor1 CURSOR FOR
select * from test (조회 조건)
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cursor1;
my_loop: LOOP
FETCH cursor1 INTO 선언할 변수 ;
SET v_count = v_count +1 ;
IF done THEN LEAVE my_loop; END IF;
실행문(insert or update)
END LOOP;
CLOSE cursor1;
END; -- 첫번째 커서 종료
BEGIN -- 두번째 커서 시작
DECLARE done2 INT DEFAULT FALSE;
DECLARE 선언할 변수2 BIGINT(20);
DECLARE cursor2 CURSOR FOR
select * from test2 (조회 조건)
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done2 = TRUE;
OPEN cursor2;
BEGIN
my_loop2: LOOP
FETCH cursor2 INTO 선언할 변수 ;
SET v_count2 = v_count2 +1 ;
IF done2 THEN LEAVE my_loop2; END IF;
실행문2(insert or update)
END LOOP;
END;
CLOSE cursor2;
END; -- 두번쨰 커서 종료
END;