我必须创建一个 SP,它返回一个值(无论它是否有效)。但它没有返回任何内容,我不知道为什么?
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
这个语句SELECT valido;
应该是这样的SELECT @valido;
看看这个链接mysql stored-procedure: out parameter .请注意有 7 个赞成票的解决方案。他用@符号引用了参数,因此我建议您在参数valido之前添加@符号
我希望这对你有用。如果它确实投票并将其标记为答案。如果没有,请告诉我。
关于MySQL存储过程返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760414/