0

我创建了这个测试程序:

DELIMITER //  
CREATE PROCEDURE `str` (IN var1 INT)  
BEGIN
    WHILE var1 < 5 DO
        SELECT var1;
        SET var1 = var1 + 1;
    END WHILE;
END //
DELIMITER ;

当我通过 phpmyadmin 运行它时,没有任何反应。没有错误,没有确认信息。如果 I CALL str(1),我会收到一条消息,指出该过程不存在。这里有什么问题?

4

1 回答 1

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

于 2012-09-23T21:17:20.410 回答