0

MySQL で VIEW を使用するプロシージャを作成する際に問題が発生しています。どこを見ても問題ないように見えますが、機能しません。

これは正常に動作している私のビューです:

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 ;
4

1 に答える 1

0

区切り文字を変更したことを確認してください。それ以外の場合は、「;」があるときはいつでも ストアド プロシージャでは、MySql はストアド プロシージャが終了したと見なします。

ストアド プロシージャを作成する前後に区切り文字を変更します。

次の行を前に追加します。

delimiter //

ストアド プロシージャの最後に「//」を追加し、次の行を後に追加します。

delimiter ;
于 2012-09-20T17:51:40.667 に答える