2012-09-20 72 views
0

我有创建在MySQL中使用该视图的过程的问题,我已经到处和它看起来很好,但它不工作CREATE PROCEDURE不工作

这是我的看法,这是工作的罚款:

CREATE OR REPLACE VIEW V_Ficha AS SELECT R.Id_rota, R.Tempo, R.Nome, F.Data, F.Tab_pesquisador_Id_pesquisador as Pes, 
F.Tab_municipio_Id_municipio as Mun, F.Tab_instrumento_Id_instrumento as Ins FROM Tab_ficha F LEFT JOIN Tab_rota AS R ON F.Tab_rota_Id_rota = R.Id_rota; 

这是我的程序:

CREATE OR REPLACE PROCEDURE P_Ficha(IN id INT) 
BEGIN 
    IF id > 1 THEN 
    SELECT * FROM V_Ficha WHERE Id_rota = id; 
    ELSE 
    SELECT 'Id must be greater than 0' AS Msg; 
    END IF; 
END; 

我把分隔符,但它仍然没有工作

DELIMITER // 
CREATE OR REPLACE PROCEDURE P_Ficha(IN id INT) 
BEGIN 
    IF (id > 1) THEN 
     SELECT * FROM V_Ficha WHERE Id_rota = id; 
    ELSE 
     SELECT 'Id must be greater than 0' AS Msg; 
    END IF; 
END 
// 
DELIMITER ; 
+0

如何在不工作?戴上我的魔法猜测帽,我想说你需要阅读'DELIMITER'。 –

回答

0

确保您更改了分隔符。否则,只要你有一个“;”在您的存储过程中,MySql会认为您的存储过程已完成。

在创建存储过程之前和之后更改分隔符。

之前添加此行:在你的存储过程结束

delimiter // 

加“//”,然后添加此行之后:

delimiter ; 
相关问题