MySQL存储过程的返回值 [英] MySQL stored procedure return value

查看:404
本文介绍了MySQL存储过程的返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须创建一个返回有效值的SP.但是它什么也没返回,我也不知道,为什么?

I have to create an SP that returns a value if it's valid or not. But it doesn't return anything and I don't know, why?

CREATE DEFINER=`root`@`localhost` PROCEDURE `validar_egreso`(
    IN codigo_producto VARCHAR(100),
    IN cantidad INT,
    OUT valido INT(11)
)
BEGIN
    DECLARE resta INT(11);
    SET resta = 0;

    SELECT (s.stock - cantidad) INTO resta
    FROM stock AS s
    WHERE codigo_producto = s.codigo;

    IF (resta > s.stock_minimo) THEN
        SET valido = 1;
    ELSE
        SET valido = -1;
    END IF;
    SELECT valido;
END

推荐答案

您已正确完成了存储过程,但我认为您没有正确引用valido变量.我在看一些示例,他们在类似@Valido

You have done the stored procedure correctly but I think you have not referenced the valido variable properly. I was looking at some examples and they have put an @ symbol before the parameter like this @Valido

此语句SELECT valido;应该类似于SELECT @valido;

查看此链接 mysql storage-procedure:out参数.注意解决方案的7个投票.他用@符号引用了该参数,因此我建议您在参数有效值之前添加一个@符号

Look at this link mysql stored-procedure: out parameter. Notice the solution with 7 upvotes. He has reference the parameter with an @ sign, hence I suggested you add an @ sign before your parameter valido

我希望对您有用.如果确实投票并标记为答案.如果没有,告诉我.

I hope that works for you. if it does vote up and mark it as the answer. If not, tell me.

这篇关于MySQL存储过程的返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆