Учебный пример цикла while не работает для меня - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь привести пример while из этой ссылки

DECLARE @cnt INT = 0;

WHILE @cnt < 10
BEGIN
   PRINT 'Inside simulated FOR LOOP on TechOnTheNet.com';
   SET @cnt = @cnt + 1;
END;

PRINT 'Done simulated FOR LOOP on TechOnTheNet.com';
GO

Но затем я получаю следующие ошибки: -

mysql> DECLARE @cnt INT = 0;                                                                                                                      

ОШИБКА 1064 (42000):У вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'DECLARE @cnt INT = 0' в строке 1

mysql> 
mysql> WHILE @cnt < 10
    -> BEGIN
    ->    PRINT 'Inside simulated FOR LOOP on TechOnTheNet.com';
ERROR 1064 (42000): 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 'WHILE @cnt < 10
BEGIN
   PRINT 'Inside simulated FOR LOOP on TechOnTheNet.com'' at line 1


mysql>    SET @cnt = @cnt + 1;
Query OK, 0 rows affected (0.00 sec)

mysql> END;
ERROR 1064 (42000): 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 'END' at line 1


mysql> 
mysql> PRINT 'Done simulated FOR LOOP on TechOnTheNet.com';
ERROR 1064 (42000): 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 'PRINT 'Done simulated FOR LOOP on TechOnTheNet.com'' at line 1
mysql> GO
ERROR: 
No query specified

1 Ответ

0 голосов
/ 02 июля 2019

Вы копируете учебник по SQL-серверу при использовании MySQL.

Правильная версия в MySQL:

CREATE PROCEDURE sp_test() 
BEGIN   
  DECLARE cnt INT DEFAULT 0;

  WHILE cnt < 10 DO
    SELECT 'Inside simulated FOR LOOP on TechOnTheNet.com';
    SET cnt = cnt + 1;
  END WHILE;
END//

Демонстрация: http://sqlfiddle.com/#!9/a4fb7c/1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...