【问题标题】:For loop in MySQL WorkbenchMySQL Workbench 中的 For 循环
【发布时间】:2019-11-11 21:41:30
【问题描述】:

Mysql 警报中的总菜鸟。

需要运行简单的 For 循环来将数据插入表中。复制loop example from docs:

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 编辑器窗口中显示一堆错误:

例如,“p1”的第一个错误告诉:

“p1”对于这个位置无效,需要一个标识符

检查 MySQL 版本 - SELECT @@version;,它的 5.7,与文档页面中的相同。工作台版本是 8.0

不确定我还能提供哪些其他信息。

【问题讨论】:

  • 如果您尝试创建并运行存储过程会发生什么?
  • 你是否设置了分隔符(如果我设置了程序语法)并且运行良好..
  • 谢谢,不能更快地回答。答案解决了问题

标签: mysql mysql-workbench


【解决方案1】:

MySQL 工作台

Query Tab 上创建存储例程时,您需要在create procedure.. 之前显式设置delimiter

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 下创建例程时,不需要包含分隔符

因为当点击应用时它会自动构建它。

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 2011-07-04
    • 2015-12-03
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多