mysql声明变量导致语法错误

时间:2017-12-17 06:35:44

标签: mysql sql

运行此代码片段后,我遇到了以下错误。提前谢谢。

DELIMITER //
BEGIN

DECLARE x INT DEFAULT 0;

DECLARE p1 INT DEFAULT 12;

REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;

END//

DELIMITER;

产生语法错误:

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册>在'DECLARE x int default 0;

附近使用正确的语法

2 个答案:

答案 0 :(得分:0)

您需要临时更改分隔符,以便MySQL客户端在第3行看到分号时不会认为您的语句已完成。

DELIMITER //
 BEGIN  
     DECLARE x INT DEFAULT 0;  
     DECLARE p1 INT DEFAULT 12;  
     REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT;  
 END// 
DELIMITER ;

上面的代码应该正常运行。

答案 1 :(得分:0)

尝试:

DELIMITER //

DROP PROCEDURE IF EXISTS `sp_test`;

CREATE PROCEDURE `sp_test`()
BEGIN
  DECLARE `x` INT DEFAULT 0;
  DECLARE `p1` INT DEFAULT 12;
  REPEAT
    SET `x` := `x` + 1;
  UNTIL `x` > `p1` END REPEAT;
  SELECT `x`;
END//

DELIMITER ;

CALL `sp_test`;