MySQL存储函数中的IF语句出错

时间:2012-09-26 09:28:00

标签: mysql sql stored-functions

我在第12行收到错误(在endif语句中)。 我相信我在IF或ELSE中做错了什么,有人可以帮助我吗?

DELIMITER $$

CREATE FUNCTION TEST (`param` INT) 
RETURNS INT 
DETERMINISTIC
BEGIN
    DECLARE `var` INT;

    SET `var` = 1;

    IF `param` > 0 THEN
        SET `var` = `var` + `param`;
    END IF;

    RETURN `var`;
END$$

编辑:(与案例相同的功能,而不是if,同样的问题)

DELIMITER $$

CREATE FUNCTION TEST (`param` INT) 
RETURNS INT 
DETERMINISTIC
BEGIN
    DECLARE `var` INT;

    SET `var` = 1;

    SET `var` = 
        CASE
            WHEN `param` > 0 THEN `var` + `param` ELSE `var`
        END ;

    RETURN `var`;
END$$

2 个答案:

答案 0 :(得分:7)

请改为尝试:

BEGIN
    DECLARE `var` INT;

    SET var = 
      CASE
        WHEN param > 0 THEN var + 1 ELSE var 
      END ;

    RETURN var;
END$$

答案 1 :(得分:1)

发现这是PHPMyAdmin中的一个错误,如果我添加了'添加例程'的功能,那就有效了!