2013-11-02 3 views
0
DELIMITER $$ 

    CREATE FUNCTION nameOfFunct(intIn int) 
    RETURN int 
    BEGIN 
     DECLARE intOut INT; 
     SET intOut = SELECT count(*) 
      FROM tableToTakeFrom 
      WHERE columToCompareTo = intIn; 

     RETURN intOut; 
    END; 
     $$ 

DELIMITER; 

을 만들 때 MYSQL 1064 오류를 얻는 것은입니다 :내가 얻을이 모두를 실행하려고하면 함수

SQL 오류 (1064) : 당신은 당신의 SQL 구문에 오류가 있습니다; 가까운 구문을 사용하려면 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. 'RETURN int
BEGIN
DECLARE intOut INT;
SET intOut = 선택 카운트 ('리턴 타입을 정의 라인이

답변

2

:

DELIMITER $$ 

CREATE FUNCTION nameOfFunct(intIn INT) 
-- RETURN INT 
RETURNS INT 
BEGIN 
    DECLARE intOut INT; 
    /*SET intOut = SELECT COUNT(*) 
     FROM tableToTakeFrom 
     WHERE columToCompareTo = intIn;*/ 
    SET intOut = (SELECT COUNT(*) 
     FROM tableToTakeFrom 
     WHERE columToCompareTo = intIn); 
    RETURN intOut; 
END $$ 

DELIMITER ; 
1

에서 RETURNS keywrod에 의해 수행이 아닌 RETURN 키워드 : 변화의 몇 가지 문제를 해결하기 위해

CREATE FUNCTION nameOfFunct(intIn int) 
RETURNS int 
BEGIN 
    DECLARE intOut INT; 
    SET intOut = SELECT count(*) 
       FROM tableToTakeFrom 
       WHERE columToCompareTo = intIn; 
    RETURN intOut; 
END; 
관련 문제