下面的“程序”有什么问题阻止我创建这个存储过程?任何帮助或清理建议都会很棒。
DELIMITER $$
DROP PROCEDURE IF EXISTS baixa_estacio;
CREATE PROCEDURE baixa_estacio (IN id int(11))
BEGIN
DECLARE estacio2 INT;
DECLARE temps1 TIME(7);
DECLARE dist1 FLOAT;
DECLARE estacio1 INT;
DECLARE estacio3 INT;
DECLARE temps2 TIME(7);
DECLARE dist2 FLOAT;
SELECT id_estacioescomunica, temps, distancia INTO estacio2, temps1, dist1 FROM escomunica WHERE escomunica.id_estacioescomunica= id;
SELECT id_estaciocomunicada,id_estacioescomunica,temps,distancia INTO estacio1,estacio3, temps2, dist2 FROM escomunica WHERE escomunica.id_estacioescomunicada = id;
DELETE FROM escomunica WHERE ((id_estacioescomunica = id) AND (EsTransbordament)=1);
DELETE FROM escomunica WHERE ((id_estaciocomunicada = id) AND (EsTransbordament)=0);
UPDATE escomunica SET id_estacioescomunica = estacio3, temps = SEC_TO_TIME(( TIME_TO_SEC (temps1) + TIME_TO_SEC (temps2))), distancia - (dist1 + dist2) WHERE ((id_estacioescomunica-id)AND(estransbordament)=0);
END;
$$
DELIMITER;
我不知道什么是错的。消息错误显示下一个:
1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在'CREATE PROCEDURE baixa_estacio(IN id INT)附近使用正确的语法 开始 DECLARE estacio2 INT; '第2行
答案 0 :(得分:0)
您必须使用您定义的分隔符终止查询外部sproc。
即DROP PROCEDURE IF EXISTS baixa_estacio$$ not ";"