2017-01-30 1 views
0

데이터베이스 테이블 (MySQL v 5.7)에서 간단한 BEFORE INSERT 트리거를 만들려고 시도했지만 문제를 해결하는 데 도움이되지 않는 막연한 "# 1064 ... 구문 오류"메시지가 계속 나타납니다.MySQL 5.7 트리거 구문 생성 오류?

CREATE OR REPLACE TRIGGER `CREATE_QUIZ_TRIG` BEFORE INSERT ON `quiz` 
FOR EACH ROW BEGIN 
    SET NEW.ACTIVE = UPPER(NEW.ACTIVE); 
    SET NEW.CREATED = NOW(); 
END 
/

내가 할 노력하고있어 모든 대문자 다음 타임 스탬프 열로 현재 날짜 & 시간을 삽입하는 열을 시행 할 수 있습니다 :

다음은 SQL입니다.

https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

을하고 난 트리거의 창조의 시작하지만 같은 '# 1064'오류가 발생에서 구분 기호를 다시 정의 할 필요가 다중 문 표현이 실현 : 나는에서 문서를 다음 왔습니다.

phpMyAdmin의 인터페이스를 사용하여 동일한 트리거를 생성하면 잘 동작하지만, 생성 된 SQL을 내보내고이를 사용하여 트리거를 만들려고하지 않기 때문에 더욱 혼란 스럽습니다. 어떤 도움

+0

생성 된 SQL을 내보내고이를 사용하여 트리거를 만들려고하지 않을 것입니다! - 이것은 무엇을 의미 하는가? –

+0

PhpMyAdmin을 사용하면 GUI를 사용하여 테이블을 만드는 데 사용 된 SQL을 출력 할 수 있습니다. 이 GUI를 사용하여 테이블을 만들 때 트리거가 성공적으로 생성되었으므로 생성 된 SQL을 내보내고 GUI 대신 SQL을 사용하여 테이블을 만들려고했습니다. 이것은 내가 생각한 특이한 것이 아니었다. PHPMyAdmin이 자동으로 트리거의 기본 구분 기호를'; '로 설정했기 때문에'SET .. 다음에 세미콜론 때문에 트리거를 만들 때 구문 오류가 발생했습니다. . 명령 (들) - 그것들은 구분 기호라고 생각했다. –

답변

0

나는 기본적으로 phpMyAdmin을가 BEGIN END 블록 내에서 문을 종료하는 데 사용되는 ;을 위반 한 ; 구분 기호를 추가 몰랐어요에 대한

감사합니다.