Подтвердить что ты не робот

Синтаксическая ошибка для объявления переменной mysql

CREATE PROCEDURE dorepeat(IN p1 INT)
BEGIN
  DECLARE x INT DEFAULT 0;
  REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END

Я получаю синтаксическую ошибку:

#1064 - 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 '' at line 3

Но для меня все кажется правильным. У меня действительно нет никакой подсказки! может кто-нибудь помочь?

спасибо

4b9b3361

Ответ 1

Вам нужно временно изменить разделитель, чтобы клиент MySQL не думал, что вы закончили с вашим выражением, когда он видит точку с запятой в строке 3:

DELIMITER //

CREATE PROCEDURE dorepeat(IN p1 INT)
BEGIN
  DECLARE x INT DEFAULT 0;
  REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END//

DELIMITER ;

Ответ 2

Удалите DECLARE, вы должны просто сделать это:

SET @x = 0;

Кроме того, переменные должны иметь префикс с символом @