MySQL存储过程变量问题

时间:2013-03-12 08:49:33

标签: mysql variables stored-procedures

变量从未通过查询更新,并始终具有默认值

BEGIN
    DECLARE sP INT DEFAULT 1;
    DECLARE cBB INT DEFAULT 0;

    SELECT sprice, cb INTO  sP, cBB FROM item WHERE id = 2;
END

这里需要一些指导,以解决它的错误(MySQL版本5.5.20)

2 个答案:

答案 0 :(得分:1)

将变量cb重命名为另一个 -

BEGIN
    DECLARE sP INT DEFAULT 1;
    DECLARE cB_var INT DEFAULT 0;

    SELECT sprice, cb INTO  sP, cB_var FROM item WHERE id = 2;
END

变量名称应与字段名称不同。

答案 1 :(得分:0)

以下两种方法效果很好,不需要DECLARE变量

BEGIN
     SELECT @sP := sprice, @cBB := cb FROM item WHERE id = 2;
END

或者如果我们想用INTO子句

来做
BEGIN
     SELECT sprice, cb INTO  @sP, @cBB FROM item WHERE id = 2;
END

区别在于,在第一个语句中,您可以拥有不需要存储在变量中的列,而在第二个... INTO ...中,每个列出的列必须存储在变量中。