MySQL: почему не работает while или любой другой цикл

программирование MySQL базы данных while циклы

Решил вот с MSSQL по чуть-чуть изучать MySQL и наткнулся сразу на проблему...

Вопрос: почему это не работает?

SET @counter = 1;
WHILE (@counter < 20) DO
SET @counter = @counter + 1;
END WHILE;

Версия SQL такая: mysql-installer-community-5.6.11.0.

Компилил это дело в Eclipse, а так же в консоли с использованием: delimiter //

Сколько не гуглил, сколько разных вариантов других циклов не пробовал, всё бестолку, говорит синтаксическая ошибка.

--------------------------------------------------------------------------------------------------------------------------------

вот это:

SET @counter = @counter + 1;

и вот это:

SET @counter = 1;

Компилит по отдельности нормально, а вот с While-ом никак...=(

--------------------------------------------------------------------------------------------------------------------------------

Begin после do уже пытался ставить. Так же пытался перед While ставить название с двоеточием и потом закрывать это дело в END. Никак не работает. REPEAT тоже не работает...

--------------------------------------------------------------------------------------------------------------------------------

В процедуре кстати тоже не работает:

CREATE PROCEDURE mypro ()
BEGIN
SET @counter = 1;
WHILE (@counter < 20) DO
SET @counter = @counter + 1;
END WHILE;
END

--------------------------------------------------------------------------------------------------------------------------------

Где я туплю?

Примечание:
Бестолку, со скобками или без скобок, результат один.

Скобки всё равно можно использовать там, так как выражения в духе: (20 + 20) * 10.

без скобок не напишешь.

Примечание:
Мой случай, но решения там нет.
MySQL уже переустанавливал, и ставил более новую версию, результата нет.

Ща буду ставить более старую.

Примечание:
Ant1973, да не помогает
Ответы:
Судя по документации
http://dev.mysql.com/doc/refman/5.0/en/while.html
WHILE (@counter < 20) DO пишется без скобок:
WHILE @counter < 20 DO
По ссылке, часом, не Ваш случай?
То есть, использование директивы DELIMITER не помогает?


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.