0

私はこのテスト手順を作成しました:

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)、プロシージャが存在しないというメッセージが表示されます。ここで何が問題になっていますか?

4

1 に答える 1

0

の反復値を取得する場合は、ループの外側がvar1必要です。以下は私のMySQLインストールでうまく機能します:SELECTWHILE

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 に答える