我试图让这个存储过程正常工作;我试图接收一个参数,并在“参与者”中查找一行参数' 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
答案 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 ;