2016-08-07 4 views
1

altervista에서 mysql을 사용하고 있는데이 트리거를 사용했지만 "# 1064 - SQL 구문에 오류가 있습니다. 해당 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 올바른 구문은 5 행에서 ''근처에 사용하는 "PLS 도움이altervista에서 mysql 트리거

CREATE TRIGGER increase 
AFTER INSERT ON tableA 
FOR EACH ROW 
BEGIN 
    DECLARE counter INTEGER; <---- line 5 

    SELECT count(*) 
    INTO counter 
    FROM tableC; 

    IF(counter == 0) THEN 
     UPDATE tableB 
     SET num = num + 1; 
    END IF; 
END 

답변

0

당신은 change the delimiter 필요 - MySQL이 첫보고있다"; " CREATE TRIGGER 문 끝으로. 내가 그것을 변경

/* Change the delimiter so we can use ";" within the CREATE TRIGGER */ 
DELIMITER $$ 

CREATE TRIGGER increase 
BEFORE INSERT ON tableA 
FOR EACH ROW BEGIN 
    DECLARE counter INTEGER; 

    SELECT count(*) 
    INTO counter 
    FROM tableC; 

    IF(counter == 0) THEN 
     UPDATE tableB 
     SET num = num + 1; 
    END IF; 
END$$ 
/* This is now "END$$" not "END;" */ 

/* Reset the delimiter back to ";" */ 
DELIMITER ; 
+0

을하지만 같은 문제 "# 1064을 가지고 - 당신은 당신의 SQL 구문에 오류가있다;에 대한 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 :

이 시도 '5 번 줄에서'근처에서 사용하십시오. – Marcoluz

+0

구분 기호를 사용하고 agin을 사용하십시오. – ashkufaraz