Для цикла в MySQL Workbench - PullRequest
       78

Для цикла в MySQL Workbench

1 голос
/ 11 ноября 2019

Всего нубов в Mysql alert.

необходимо запустить простой цикл For для вставки данных в таблицу. Копирование для примера цикла из документов :

CREATE PROCEDURE doiterate(p1 INT)
BEGIN
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 10 THEN
      ITERATE label1;
    END IF;
    LEAVE label1;
  END LOOP label1;
  SET @x = p1;
END;

Показывает кучу ошибок в окне редактора Workbench:

enter image description here

Например, первая ошибка для "p1" говорит:

"p1" недопустим для этой позиции, ожидая идентификатор

Проверенная версия MySQL - SELECT @@version;, его 5.7, так же, как со страницы документов. Версия Workbench: 8.0

Не знаю, какую еще информацию я могу предоставить.

1 Ответ

1 голос
/ 11 ноября 2019

Вкл. MySQL Workbench

при создании хранимой подпрограммы на Query Tab вам нужно явно установить delimiter перед create procedure..

enter image description here

DELIMITER $$ -- this symbol can be anything other than default ;
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 10 THEN
      ITERATE label1;
    END IF;
    LEAVE label1;
  END LOOP label1;
  SET @x = p1;
END $$
DELIMITER ; -- once completed we are resting back to default

При создании подпрограммы в Routine Tab вам не нужно включать разделитель

enter image description here

С каких порнажав Применить, он автоматически создаст его.

enter image description here

...