2014-05-23 5 views
0

아래의 "저장 프로 시저를 만들지 못하게하는"프로그램의 문제점은 무엇입니까? 어떤 도움이나 제안을 정리하면 좋을 것입니다.MySQL - 저장 프로 시저 구문 오류

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 구문에 오류가 있습니다. 'CREATE PROCEDURE baixa_estacio (IN id INT)'근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. BEGIN DECLARE estacio2 INT; 'at line 2

+0

그 전에 줄의 구분 기호를 변경 했으므로'$$ '을 사용하여'drop'을 구분해야합니다. –

답변

0

정의한 구분 기호를 사용하여 outsite sproc을 종료해야합니다. 즉 DROP PROCEDURE IF EXISTS baixa_estacio$$ not ";"