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;