PHPMYADMIN中的MySQL存储过程 - 没有任何反应

时间:2012-09-23 21:12:19

标签: mysql stored-procedures

我创建了这个测试程序:

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),我会收到一条消息,说明该程序不存在。这有什么不对?

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