2013-05-24 2 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, для правильного синтаксиса для использования рядом с 'if (new.status =' 2 'или new.status =' 3 ') затем , затем удалить из ind_user_events wh' по строке 7update Trigger not working

ответ

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 Если это помогло, рассмотрите ** [accept] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ** ответ. – peterm