首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储过程内的Mysql while变量

存储过程内的Mysql while变量
EN

Stack Overflow用户
提问于 2017-01-23 07:54:16
回答 1查看 430关注 0票数 0

在搜索了过去的5个小时后,我想不出为什么这个代码不能工作…

但是,如果我删除循环中的INSERT行,它就会按预期工作。

我在Debian上使用MySQL5.5。

有什么需要帮忙的吗?提前谢谢你。

代码语言:javascript
运行
复制
 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);
EN

Stack Overflow用户

发布于 2017-01-23 09:06:04

对不起,原来是我使用Mysql的经验不足和一个愚蠢的错误。这就是答案:

代码语言:javascript
运行
复制
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 ;
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41797478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档