运行此代码片段后,我遇到了以下错误。提前致谢。
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客户端在第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 ;
上面的代码应该正常运行。
尝试:
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`;