【问题标题】:MySQL syntax error in WHILE statementWHILE 语句中的 MySQL 语法错误
【发布时间】:2014-05-11 21:37:19
【问题描述】:

我正在学习 MySQL (v 5.6) 并尝试获得一个简单的 WHILE 循环来完成。我什至只是直接从manual 复制和粘贴(添加了SELECT v1; 语句)。

CREATE PROCEDURE dowhile()
BEGIN
  DECLARE v1 INT DEFAULT 5;

  WHILE v1 > 0 DO
    SELECT v1;
    SET v1 = v1 - 1;
  END WHILE;
END;

Workbench 给了我这个错误:

CREATE PROCEDURE dowhile() BEGIN DECLARE v1 INT DEFAULT 5 错误代码:1064。您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 在第 3 行 0.001 秒的 '' 附近使用的语法

非常感谢更有经验的 MySQL 程序员提供的任何见解!

【问题讨论】:

  • 您使用的是什么 MySQL 客户端? (编辑 - 我看到它是 Workbench)如果您使用的是命令行客户端,则需要设置 DELIMITER。见stackoverflow.com/questions/10259504/delimiters-in-mysql。其他客户端(如 PHPMyAdmin)有自己的设置备用分隔符的方法。

标签: mysql


【解决方案1】:

过程看起来不错,我猜你缺少分隔符

delimiter //
CREATE PROCEDURE dowhile()
  BEGIN
   DECLARE v1 INT DEFAULT 5;
    WHILE v1 > 0 DO
     SET v1 = v1 - 1;
   END WHILE;
 END; //
delimiter ;

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多