外循环没有在这个程序中执行,请建议我该怎么办?

时间:2017-07-31 10:00:52

标签: mysql

drop procedure if exists insertCampaignTimes;
DELIMITER //  
CREATE PROCEDURE insertCampTimes()  
BEGIN

     DECLARE dayNo INT DEFAULT 1; 
     DECLARE hourNo INT DEFAULT 3; 

DELETE FROM `camp_time`  where camp_id = 416;

 WHILE (hourNo <= 3) 
   DO
     WHILE (hourNo <= 15) 
       DO
       INSERT INTO `camp_time` (`camp_id`, `day`, `hour`) values (416, dayNo, hourNo);
       SET hourNo := hourNo + 1;
     END WHILE;

  SET dayNo := dayNo + 2; 
 END WHILE;

END //

DELIMITER ;

1 个答案:

答案 0 :(得分:0)

您没有在内部循环中更新 hourNo 字段。与两个循环一样,您使用相同的 hourNo 字段。在结束后结束时,再使用一个SET hourNo := hourNo + 1;来更新代码。