mysql的变量声明语法错误

问题描述 投票:24回答:2
CREATE PROCEDURE dorepeat(IN p1 INT)
BEGIN
  DECLARE x INT DEFAULT 0;
  REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END

我收到语法错误:

#1064 - 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 '' at line 3

但是对我来说,一切似乎都是正确的。我真的没有任何线索!有人可以帮忙吗?

谢谢

mysql syntax
2个回答
51
投票

您需要暂时change the delimiter,以便MySQL客户端在第3行看到分号时认为您的语句已完成。

DELIMITER //

CREATE PROCEDURE dorepeat(IN p1 INT)
BEGIN
  DECLARE x INT DEFAULT 0;
  REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;
END//

DELIMITER ;

-3
投票

删除DECLARE,您应该能够执行此操作:

SET @x = 0;

此外,变量必须以@符号开头


-3
投票

删除DECLARE,您应该能够执行此操作:

© www.soinside.com 2019 - 2024. All rights reserved.