在MySQL中使用存储过程的变量

时间:2013-03-01 07:16:26

标签: mysql sql

我试图让这个存储过程正常工作;我试图接收一个参数,并在“参与者”中查找一行参数' table,计算结果以验证表中是否存在id。不知何故,当我尝试保存程序时,它失败了说"你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在' END'附近使用正确的语法。在第16行和第34行。任何帮助都会得到赞赏。

BEGIN
DECLARE cuentaAtleta INT;

SELECT COUNT(*)
INTO cuentaAtleta 
FROM participantes
WHERE id_participante =  id; /* id is a parameter */

IF cuentaAtleta > 0 THEN
    SELECT *
    FROM participantes
    INNER JOIN disciplinas ON participantes.id_disciplina = disciplinas.id_disciplina
    WHERE id_participante =  'id;

END IF
END

它在Linux服务器上 MySQL版本:5.1.68-cll
PHP版本:5.3.16

1 个答案:

答案 0 :(得分:3)

因为您尚未终止语句而您没有更改分隔符。

DELIMITER $$
CREATE PROCEDURE procNameHERE(IN ID INT)
BEGIN

    DECLARE cuentaAtleta INT;

    SELECT  COUNT(*)
    INTO    cuentaAtleta 
    FROM    participantes
    WHERE   id_participante =  id;

    IF cuentaAtleta > 0 THEN
        SELECT  *
        FROM    participantes
                INNER JOIN disciplinas 
                    ON participantes.id_disciplina = disciplinas.id_disciplina
        WHERE   id_participante =  id;
    END IF ;

END $$
DELIMITER ;