1. 程式人生 > >mysql遊標實現時當內部查詢有一次未查詢到結果時就自動退出迴圈解決辦法

mysql遊標實現時當內部查詢有一次未查詢到結果時就自動退出迴圈解決辦法

DECLARE done INT DEFAULT 0;  

 DECLARE cur2 cursor for SELECT  periodid,name,periodtype  from  edm_period  where  projectid =p_projectid ;


 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;  

OPEN cur2;

     lp1:LOOP  
        FETCH cur2 INTO v_periodid,v_purname,v_periodtype;  


        IF done=1 THEN  
          LEAVE lp1;  
        END IF;  
        select  max(periodseq) into v_maxseq  from  edm_form_status  where projectid=p_projectid and periodid=v_periodid  and formid=0;
        
        set done=0;

      end Loop lp1;

close cur2;

解決辦法就是在每次迴圈執行結束時加上set done=0; 如上程式碼。