添加一个参数后,存储过程失败

时间:2014-07-09 00:23:12

标签: mysql stored-procedures

这是我的存储过程。

CREATE DEFINER=`root`@`localhost` PROCEDURE `getGameIdByPlayerAndDate`(out id integer)
BEGIN
-- DECLARE myCursor CURSOR FOR 
select game
from `playerstatistic`, `game`
where `playerstatistic`.`game`=`game`.`id`
    and `date`="2014-03-26"
    and `PlayerName`="Kenneth Faried";

    -- open myCursor;
    -- FETCH myCursor INTO id;  


    -- set id=0;


    -- SELECT id;  
    -- SET id=2;  
    -- SELECT id;  
END

我想传递玩家姓名和日期,然后程序返回游戏ID。但是现在为了解决问题,我对玩家姓名和日期进行了硬编码。

我调用程序,它选择正确的数据。 enter image description here

然后我将playerName参数添加到过程中,并向call语句添加一个伪参数。商店程序现在什么都不选!

enter image description here

我写错了吗?如何使代码工作?

1 个答案:

答案 0 :(得分:1)

您必须指定作为参数传递的值:

首先,更改名称以避免重复名称:

CREATE PROCEDURE `getGameIdByPlayerAndDate`(IN p_playerName varchar(40),out id integer)

现在将此参数分配给PlayerName字段

`PlayerName` = p_playerName;