2014-10-30 3 views
0

방아쇠 안에 함수를 만들려고하는데 어떤 이유로 이걸 저장하지 못합니다. MySQL은 당신이 INSERT 문에 대한 테이블 이름과 기능을 평가 할 수없는 나에게 오류 (1064)MySQL의 방아쇠가 저장되지 않습니다

DELIMITER // 

CREATE FUNCTION whichTable(vanID VARCHAR(10)) 
RETURNS VARCHAR(10) 

BEGIN 
    DECLARE tableName VARCHAR(10); 

    IF vanID = 'JAX 04' THEN SET tableName = 'JAX_01'; 
    ELSEIF vanID = 'ORL 01' THEN SET tableName = 'ORL_01'; 
    END IF; 

    RETURN tableName; 
END // 

DELIMITER; 

INSERT INTO whichTable(NEW.b) (`indx`, `b`, `c`, `d`) VALUES (NULL, NEW.b, NEW.c, NEW.d); 
+1

는 왜 트리거 내부의 함수를 만들 것인가? 트리거 외부에서 함수를 만든 다음 트리거에서 참조하십시오. –

답변

1

을주는 유지합니다.

그러나 트리거에서 동일한 조건을 사용할 수 있습니다

IF NEW.b = 'JAX 04' THEN 
    INSERT INTO JAX_01 (`indx`, `b`, `c`, `d`) VALUES (NULL, NEW.b, NEW.c, NEW.d); 
ELSEIF NEW.b = 'ORL 01' THEN 
    INSERT INTO ORL_01 (`indx`, `b`, `c`, `d`) VALUES (NULL, NEW.b, NEW.c, NEW.d); 
END IF; 
+0

완벽한, 고마워요! – seaBass

+1

Yourwelcome! ... 답변을 수락했거나 투표를 통해 확인할 수 있습니까? –

관련 문제