После запуска этого фрагмента кода я столкнулся с следующей ошибкой. Заранее спасибо.
DELIMITER //
BEGIN
DECLARE x INT DEFAULT 0;
DECLARE p1 INT DEFAULT 12;
REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END//
DELIMITER;
Производит синтаксическую ошибку:
# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для> правильного синтаксиса для использования рядом с 'DECLARE x int default 0;
Вам необходимо временно изменить разделитель, чтобы клиент MySQL не думал, что вы закончили с вашим выражением, когда он видит точку с запятой в строке 3.
DELIMITER //
BEGIN
DECLARE x INT DEFAULT 0;
DECLARE p1 INT DEFAULT 12;
REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END//
DELIMITER ;
Над кодом должен работать должным образом.
Пытаться:
DELIMITER //
DROP PROCEDURE IF EXISTS 'sp_test';
CREATE PROCEDURE 'sp_test'()
BEGIN
DECLARE 'x' INT DEFAULT 0;
DECLARE 'p1' INT DEFAULT 12;
REPEAT
SET 'x' := 'x' + 1;
UNTIL 'x' > 'p1' END REPEAT;
SELECT 'x';
END//
DELIMITER ;
CALL 'sp_test';
DELIMITER ;
произвел ошибку, которую вы упомянули. Проблема в том, что он не выполняетDELIMITER;
с этим.