我是MySQL的新天地。我试图创建一个程序来决定他/她的GPA的学生的班级。我给了他们一个CRegNo,这个时间是1到10。这里是我的代码:这个mysql语法中的错误是什么?
mysql> delimiter //
mysql> CREATE PROCEDURE DecideClass()
-> BEGIN
-> DECLARE count INT;
-> DECLARE max INT;
-> SET count = 1;
-> SET max = 10;
-> DECLARE FClass CHAR(18) DEFAULT 'First class honors';
-> DECLARE sUpper CHAR(34) DEFAULT 'Second class honors-upper division';
-> DECLARE sLower CHAR(34) DEFAULT 'Second class honors-lower division';
-> DECLARE tClass CHAR(18) DEFAULT 'Third class honors';
-> WHILE count <= max DO
-> DECLARE GPA DECIMAL(3,2);
-> SET GPA = (SELECT GPA FROM STUDENT WHERE CRegNo = count);
-> IF GPA >= 3.7 THEN
-> UPDATE STUDENT SET Class = FClass WHERE CRegNo = count;
-> ELSE IF GPA < 3.7 AND GPA >= 3.3 THEN
-> UPDATE STUDENT SET Class = SUpper WHERE CRegNo = count;
-> ELSE IF GPA < 3.3 AND GPA >= 2.7 THEN
-> UPDATE STUDENT SET Class = SLower WHERE CRegNo = count;
-> ELSE IF GPA < 2.7 AND GPA >= 2.0 THEN
-> UPDATE STUDENT SET Class = TClass WHERE CRegNo = count;
-> END IF
-> SET count = count + 1;
-> END WHILE;
-> END;
-> //
然后它说,
ERROR 1064(42000):你在你的SQL语法错误;查看 手册,该手册对应于您的MySQL服务器版本右边的 语法,以便在'DECLARE FClass CHAR(18)DEFAULT'First class honors'附近使用; DECLARE sUpper CHAR(34)DE'at line 7
任何人都可以帮我解决这个问题吗?错误是什么?
[DECLARE仅在BEGIN ... END复合语句中被允许,并且必须在其开始之前,在任何其他语句之前。](http://dev.mysql.com/doc/refman/5.0/en/declare .html) – 2014-09-10 18:02:32
啊,thanx队友:) – 2014-09-10 18:03:47