为什么我在Mysql中运行SQL语句“declare”后它会返回错误?

为什么我在Mysql中运行SQL语句“declare”后它会返回错误?,mysql,sql,Mysql,Sql,该表定义如下: 我试图用“declare”来声明变量,但它总是会出错,我不知道为什么 守则: mysql> DELEMITER // mysql> CREATE PROCEDURE emp_age_count(IN age1 int,IN age2 int,OUT count INT) -> BEGIN -> DECLARE temp FLOAT; -> DECLARE emp_age CURSOR FOR SELE

该表定义如下:

我试图用“declare”来声明变量,但它总是会出错,我不知道为什么

守则:

mysql> DELEMITER //
mysql> CREATE PROCEDURE emp_age_count(IN age1 int,IN age2 int,OUT count INT)
        -> BEGIN
        -> DECLARE temp FLOAT;
        -> DECLARE emp_age CURSOR FOR SELECT empage FROM emp;
        -> DECLARE EXIT HANDLER FOR NOT FOUND
        -> CLOSE emp_age;
        -> SET @sum=0;
        -> SELECT COUNT(*) INTO count FROM emp
        -> WHERE empage>age1 AND empage<age2;
        -> OPEN emp_age;
        -> REPEAT
        -> FETCH emp_age INTO temp;
        -> IF temp>age1 AND temp<age2;
        -> THEN SET @sum=@sum+temp;
        -> END IF;
        -> UNTIL 0 END REPEAT;
        -> CLOSE emp_age;
        -> END//


    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
    version for the right syntax to use near ';
    THEN SET @sum=@sum+temp;
    END IF;
    UNTIL 0 END REPEAT;
    CLOSE emp_age;
    END' at line 13

请移去;在“如果”条件结束时

应该是

IF (temp>age1 AND temp<age2)
THEN
SET @sum=@sum+temp;
END IF;

该错误告诉您语法错误的位置,而变量声明中没有语法错误。你使用的是一个;在第一个if lineDELEMITER的末尾?这是实际代码吗?