我创建了这个测试程序:
DELIMITER //
CREATE PROCEDURE `str` (IN var1 INT)
BEGIN
WHILE var1 < 5 DO
SELECT var1;
SET var1 = var1 + 1;
END WHILE;
END //
DELIMITER ;
当我通过phpmyadmin运行时,没有任何反应。没有错误,没有确认消息。如果我CALL str(1)
,我会收到一条消息,说明该程序不存在。这有什么不对?
答案 0 :(得分:0)
如果您想获得var1
的迭代值,则需要SELECT
循环之外的WHILE
。以下在我的MySQL安装中运行良好:
DROP PROCEDURE IF EXISTS `str`;
DELIMITER //
CREATE PROCEDURE `str` (IN var1 INT)
BEGIN
WHILE var1 < 5 DO
SET var1 = var1 + 1;
END WHILE;
SELECT var1;
END //
DELIMITER ;
执行CALL str(1)
会返回5