为什么此存储过程返回NULL

时间:2017-08-31 10:48:19

标签: mysql stored-procedures

我是SQL的新手,我只是在练习存储过程。我有这个SP应该返回乘法的乘积。相反,它返回NULL,而不会给出错误。

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spMultiply`(IN `n1` INT, IN `n2` INT, OUT `x` INT)
    BEGIN

    SET @nn = @n1;
    SET @mm = @n2;

    SELECT @x=@nn*@mm;

END$$
DELIMITER ;

1 个答案:

答案 0 :(得分:0)

drop PROCEDURE `spMultiply`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spMultiply`(IN `n1` INT, IN `n2` INT, OUT `x` INT)
    BEGIN

    SET @nn = n1;
    SET @mm = n2;

    set x:=@nn*@mm;

END$$
DELIMITER ;
call spMultiply(1,2,@x);
select @x;

您可以尝试以上代码。

我在这里进行了更改

SELECT @x=@nn*@mm;set x:=@nn*@mm;

同时从输入变量中删除 @

绝对会帮助你。