DECLARE关键字根本不起作用

时间:2017-11-09 01:37:22

标签: mysql

我有一个非常简单的陈述,不会出于某种原因。

我正在尝试进行FOR循环:

DECLARE counter INT DEFAULT 2;
WHILE counter < 8
....
SET counter = counter + 1;

难以置信的基本,但在尝试运行DECLARE语句时出错。我尝试使用一个用户变量,但是WHILE语句不起作用

SET @counter = 2;
WHILE @counter <8
....
SET @counter = @counter + 1;

是否有可能导致此类行为的系统变量?这真是令人沮丧,因为我看到的任何地方都表明我正确地做到了。我可以从其他解决方案中复制粘贴代码,但这对我不起作用。

1 个答案:

答案 0 :(得分:3)

您的代码是否在存储过程中?如果没有,您必须创建一个存储过程来使用这些功能。

更一般地说,你想解决什么问题?通常,数据库环境中更好的解决方案看起来更像是一个查询而不是循环。

DECLARE的文档表明它必须在begin...end之间使用,并且begin ... end的文档在存储过程和函数中使用。

此外,WHILE语句的语法是:

...
WHILE (some_condition) DO
    some_commands
END WHILE
...

您错过了DOEND WHILE