尝试在mysql中实现一个简单的嵌套循环例程:
BEGIN
DECLARE days_cnt INT;
SET days_cnt = 0; # Start today
WHILE days_cnt < 10 DO
WHILE 1 DO
END WHILE;
SET days_cnt = days_cnt + 1;
END WHILE;
END
这是关于'END WHILE;'
附近的语法错误的一般性1064错误有什么想法吗?
答案 0 :(得分:0)
您可能需要在存储的程序中重新定义分隔符(分号)。根据{{3}}
如果使用mysql客户端程序定义包含分号字符的存储程序,则会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此必须临时重新定义分隔符以使mysql将整个存储的程序定义传递给服务器。
因此,在CREATE PROCEDURE
语句之前添加以下内容(可以是除分号以外的任何字符):delimiter $$
然后在CREATE PROCEDURE
结束后重置:delimiter ;
否则,我不确定MySQL如何处理您在外部WHILE
循环中嵌套的空WHILE 1 DO END
循环语句(WHILE
部分) 。您可能希望删除该内容循环中所需的内容或处理它。
答案 1 :(得分:0)
此循环必须在其中包含一个语句:
WHILE 1 DO
END WHILE;