在IF语句MySQL中调用存储过程

时间:2012-11-30 05:47:58

标签: mysql stored-procedures

有人知道是否允许这样做吗?

IF CALL GET_RIGHT_NODE(edge) = 15
THEN
SELECT "IT WORKS";

我在这个语法上遇到错误,有可能以其他方式吗?

1 个答案:

答案 0 :(得分:1)

存储过程的返回值应该在OUT参数中捕获(而来自用户定义函数的返回值可以捕获为@returnValue = function())。

因此,您的GET_RIGHT_NODE应该使用OUT参数并将其设置为返回值。

CREATE PROCEDURE GET_RIGHT_NODE
(
     @edge INT,
     @returnValue INT OUTPUT
)
AS

-- Definition of the proc.

然后你会按如下方式调用该程序:

DECLARE @returnValue INT

CALL GET_RIGHT_NODE(@edge, @returnValue)

IF (@returnValue = 15)
THEN
    SELECT 'IT WORKS'