运行此代码片段后,我遇到了以下错误。提前谢谢。
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;
附近使用正确的语法
答案 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`;