为什么我在Mysql中运行SQL语句“declare”后它会返回错误?
该表定义如下: 我试图用“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
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的末尾?这是实际代码吗?