在搜索了过去的5个小时后,我想不出为什么这个代码不能工作…
但是,如果我删除循环中的INSERT行,它就会按预期工作。
我在Debian上使用MySQL5.5。
有什么需要帮忙的吗?提前谢谢你。
SET @j = 0;
DELIMITER $$
CREATE PROCEDURE procedureYearWeek(INOUT j INT)
BEGIN
DELETE FROM Periods WHERE perPeriods NOT IN (0);
WHILE j < 10 DO
INSERT INTO Periods (perPeriods) VALUES (YEARWEEK(ADDDATE(CURRENT_DATE(), INTERVAL j DAY)));
SELECT j + 1 INTO j;
END WHILE;
END $$
DELIMITER ;
CALL procedureYearWeek(@j);发布于 2017-01-23 09:06:04
对不起,原来是我使用Mysql的经验不足和一个愚蠢的错误。这就是答案:
DELIMITER $$
CREATE PROCEDURE procedureYearWeek()
BEGIN
DECLARE j INT DEFAULT 0;
DECLARE newDAta INT DEFAULT 0;
DELETE FROM Periods WHERE perPeriods NOT IN (0);
WHILE j < 10 DO
INSERT INTO Periods (perPeriods) VALUES (YEARWEEK(ADDDATE(CURRENT_DATE(), INTERVAL newDAta DAY)));
SET j = j + 1;
SET newDAta = newDAta + 14;
END WHILE;
END $$
DELIMITER ;https://stackoverflow.com/questions/41797478
复制相似问题