Я довольно новый для мира 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« Первый класс почестей »; DECLARE sUpper CHAR (34) DE 'по строке 7
Может ли кто-нибудь помочь мне здесь? Какая ошибка?
[DECLARE разрешено только внутри инструкции BEGIN ... END и должно быть в начале, перед любыми другими утверждениями.] (Http://dev.mysql.com/doc/refman/5.0/en/declare .html) –
ah, thanx mate :) –