MySQL存储过程的返回值 [英] MySQL stored procedure return value
问题描述
我必须创建一个返回有效值的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屋!