2012-12-25 3 views
-1

오늘 내 자신의 트리거를 썼지 만 mysql에 입력 할 때 구문 오류가 발생합니다. 다음 코드의 내 트리거 정의는 다음과 같습니다. 당신은 당신의 SQL 구문에 오류가 -Mysql 트리거 구문 if 문

# 1064 : 내가 phpMyAdmin을이 코드를 넣을 때

CREATE DEFINER = CURRENT_USER TRIGGER `Customer_Car_Trigger` AFTER INSERT ON `CUSTOMERS` 
FOR EACH ROW 
BEGIN 
SET @CountOfCar = (SELECT COUNT(ID) FROM `CARS`,`CUSTOMERS` WHERE `CARS`.`CustomerID` = `CUSTOMERS`.`ID`) 
IF @CountOfCar>0 THEN 
    UPDATE `CUSTOMERS` SET `NumberOfCars`=+1 WHERE `CUSTOMERS`.`ID`=NEW.`ID` 
END IF 
END; 

는 나를 준다 라인에서 5

내가 시도 많은 다른 것들을 '@CountOfCar> 0 THEN CUSTOMERS SET NumberOfCars = +`고객이 1 를 업데이트하는 경우'올바른 구문 근처에서 사용하는 MySQL 서버 버전에 해당하는 설명서를 확인 IF 진술에. 내가 잘못하고 있니? 나는 구문 오류를 보여주지 않았다. phpmyadmin이 나에게이 오류를주는 이유는 무엇입니까? IF-ELSE 문에서 진실한 표현과 다른가?

답변

1

당신은 몇 ; 1로 반복하는 SQL 당신이 +=1

delimiter | 
CREATE DEFINER = CURRENT_USER TRIGGER `Customer_Car_Trigger` AFTER INSERT ON `CUSTOMERS` 
FOR EACH ROW 
BEGIN 
    SET @CountOfCar = (SELECT COUNT(ID) FROM `CARS`,`CUSTOMERS` WHERE `CARS`.`CustomerID` = `CUSTOMERS`.`ID`); 
    IF @CountOfCar>0 THEN 
     UPDATE `CUSTOMERS` SET `NumberOfCars`= `NumberOfCars`+1 WHERE `CUSTOMERS`.`ID`=NEW.`ID`; 
    END IF; 
END; 
| 
delimiter ; 
사용할 수 없습니다 잊었다