2014-01-06 1 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

테이블 스키마를 표시 할 수 있습니까? 당신의 두 선택은 말이되지 않습니다. 그리고 당신은'season' 매개 변수를 사용하지 않습니다. – peterm

답변

0

당신이 그것을 BEGIN 후 모든 코드 유용한 무언가를하는 것을 갖는 좋은 생각하십니까? 또는 :-) 덜 둔각 언어로, 그냥 RETURNS VARCHAR 후 같은 뭔가 BEGIN로 이동 (가독성을 위해 헤어 졌 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 구문에 오류가 있습니다. 올바른 구문이 'BEGIN DECLARE _ids INT; 근처에서 사용하도록 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. DECLARE _bsk VARCHAR (200); SELE '4 번 라인에서 공유 | 편집 | 삭제 | 플래그 – user3128161

+0

@ user3128161, 나는 그것이 반환 형식이 상위 크기 길이가없는 것 같아요. 업데이트 된 코드로 시도해보십시오.'returns varchar (200)'. – paxdiablo

관련 문제