mysql声明变量导致语法错误

问题描述 投票:0回答:2

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

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附近使用正确的语法;

mysql sql
2个回答
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 ;

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


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`;
© www.soinside.com 2019 - 2024. All rights reserved.