2013-05-24 3 views
3
DELIMITER $$ 

CREATE 
/*[DEFINER = { user | CURRENT_USER }]*/ 
TRIGGER `ir_db1407`.`after_update_ind_user` AFTER UPDATE 
ON `ir_db1407`.`ind_user` 
FOR EACH ROW BEGIN 
SET @user_id=OLD.id 
IF (NEW.STATUS = '2' OR NEW.STATUS ='3') 
THEN 
DELETE FROM ind_user_events WHERE user_id = @user_id; 
DELETE FROM ind_user_mobile WHERE user_id = @user_id; 
END IF; 
END$$ 

DELIMITER; 

오류 코드 : 1064 SQL 구문에 오류가 있습니다. 올바른 구문 근처에서 사용하는 MySQL 서버 버전에 해당하는 설명서를 확인 '하는 경우를 (new.status ='2 '또는 new.status ='3 ') 는 어 ind_user_events에서 삭제'라인에서 7업데이트 트리거가 작동하지 않습니다.

답변

2

변경

SET @user_id=OLD.id 

SET @user_id=OLD.id; 
       ^

에 당신은 실제로도이 변수가 필요하지 않습니다. 그래서 그 라인을 도려내 고 시도하십시오.

... 
IF (NEW.STATUS = '2' OR NEW.STATUS ='3') THEN 
    DELETE FROM ind_user_events WHERE user_id = OLD.id; 
    DELETE FROM ind_user_mobile WHERE user_id = OLD.id; 
END IF; 
... 
+0

고마워요. –

+0

@ANILJOSHI 도움이 되었다면 ** [수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ** 답을 고려하십시오. – peterm

관련 문제