MySQL存储过程返回值

标签 mysql stored-procedures return-value

我必须创建一个 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/

相关文章:

c# - 在函数内执行存储过程而不等待返回

php - 用php7.0编写动态调用mysql存储过程的函数

java - jquery 进度条,带 servlet,不带 $.ajax

c - 是否需要释放用于函数返回变量的内存 (C)?

php - 管理员确认后登录

mysql - 仅当列值低于 100 时才增加

mysql - 自动计算 MySQL 查询

sql-server - 这是存储过程中写得好的事务吗

javascript - foreach 循环和返回值 undefined

mysql - 仅对一列和特定状态的子集使用 datediff