1

我正在尝试使这个存储过程工作;我正在尝试接收一个参数,并在“参与者”表中查找一行,计算结果以验证表中是否存在该 ID。不知何故,当我尝试保存该过程时,它失败说“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 16 行的 'END' 附近使用”。任何帮助将不胜感激。

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

4

1 回答 1

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 ;
于 2013-03-01T07:18:06.027 回答