2014-01-06 97 views
0

請幫我使用Mysql函數。代碼:Mysql函數錯誤 - 無法弄清楚

DELIMITER $$ 

CREATE FUNCTION `media`.`Return_Next_Season`(
     season VARCHAR(200)) 
    RETURNS VARCHAR 
    DECLARE _ids INT ; 
    DECLARE _bsk VARCHAR(200); 


SELECT id INTO _ids FROM media._broadcast_seasons WHERE broadcast_season_key = '20132014_Fall'; 



SELECT broadcast_season_key INTO bsk FROM media._broadcast_seasons WHERE id = ids; 

    RETURN bsk; 
    BEGIN 

    END$$ 

DELIMITER ; 
+0

什麼是錯誤堆棧? – Rugal

+0

你可以顯示你的表格嗎?你的兩個選擇沒有任何意義。你不使用季節參數。 – peterm

回答

0

你認爲這是具有BEGIN所有的代碼,做一些有用的東西是個好主意? :-)或者,在更短的鈍語言,移動BEGIN只是在RETURNS VARCHAR後,類似的信息(select報表分解爲便於閱讀,但你可能不得不重組它們):

DELIMITER $$ 
CREATE FUNCTION `media`.`Return_Next_Season`(
    season VARCHAR(200)) 
    RETURNS VARCHAR(200) 
    BEGIN 
     DECLARE _ids INT ; 
     DECLARE _bsk VARCHAR(200); 
     SELECT id INTO _ids FROM media._broadcast_seasons 
      WHERE broadcast_season_key = '20132014_Fall'; 
     SELECT broadcast_season_key INTO bsk FROM media._broadcast_seasons 
      WHERE id = ids; 
     RETURN bsk; 
    END$$ 
DELIMITER ; 

你會發現我我也改變了返回類型來給它一個大小,因爲我相信這也是必要的。

+0

嘗試此..不工作.. 錯誤代碼:1064您的SQL語法中有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到在'BEGIN DECLARE _ids INT; DECLARE _bsk VARCHAR(200); SELE'在第4行 分享|編輯|刪除|標記 – user3128161

+0

@ user3128161,我認爲這是與返回類型缺少一個較大的長度。試着用更新的代碼'returns varchar(200)'。 – paxdiablo