CREATE PROCEDURE - error 1064 - MySQL
Формулировка задачи:
ВСЕМ ПРИВЕТ, ПОДСКАЖИТЕ ПОЖАЛУЙСТА ПОЧЕМУ НЕ РАБОТАЕТ ?7
Я УЖЕ ПОВСЯКОМУ ПЕРЕПРОБЫВАЛ
то же самое
выдает #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '' на строке 3
пишу запрос в разделе SQL В PHPMYADMIN
CREATE PROCEDURE dowhile(maxi INT) BEGIN SET @i = 0 WHILE @i<maxi DO SELECT F_STUDENT, F_FACULTET FROM Main WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = @i; SET @i = @i+1; END WHILE; END CALL dowhile(5);
CREATE PROCEDURE dowhile() BEGIN DECLARE i INT DEFAULT 0; WHILE i<4 DO SELECT F_STUDENT, F_FACULTET FROM Main; WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i; SET i = i+1; END WHILE; END CALL dowhile(5);
вообщем я хочу добиться выполнения этого куска когда через цикл
SELECT F_STUDENT, F_FACULTET FROM Main WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i;
Решение задачи: «CREATE PROCEDURE - error 1064»
textual
Листинг программы
DELIMITER $$ CREATE PROCEDURE dowhile(maxi INT) BEGIN SET @i = 0; WHILE @i < maxi DO SELECT F_STUDENT, F_FACULTET FROM Main WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = @i; SET @i = @i+1; END WHILE; END$$ DELIMITER ;
Объяснение кода листинга программы
- Создание процедуры с именем
dowhile - Установка переменной
@iравной 0 - В цикле WHILE с условием
@iменьшеmaxiвыполняются следующие действия: - Выполняется запрос SELECT к таблице
Mainс условием, что значение столбцаF_FACULTETравно 1, 2 или 3 и значение столбцаF_STUDENTравно текущему значению переменной@i - Значение переменной
@iувеличивается на 1 - Цикл повторяется до тех пор, пока условие не станет ложным
- Завершение процедуры