我正在尝试使这个存储过程正常工作;我正在尝试接收一个参数并使用该参数在“participantes”表中查找一行,计算结果以验证该 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
最佳答案
因为您没有终止语句并且您没有更改分隔符。
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 ;
关于mysql - 在 MySQL 中的存储过程中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152544/