2014-08-30 3 views
1
CREATE TRIGGER `add_history` AFTER UPDATE ON `meters` 
FOR EACH ROW 
CASE inserted.id 
WHEN 2 THEN 
    INSERT INTO waterlog SET deciliter = 5; 
WHEN 3 THEN 
    INSERT INTO eleklog SET kwh = 1; 
END CASE 

업데이트되는 행 (ID가 2 또는 3 인 레코드)에 따라 다른 쿼리를 실행하고 싶습니다. 값이 정기적으로 업데이트하고 다른 테이블에서 로그 항목의 작성을 트리거 할 필요가있다 MYSQL : 왜 다음 업데이트 트리거가 작동하지 않습니까?

id meter value 
2  water 121 
3  elek  344 

같은 미터 테이블이 보인다.

+0

귀하의'into' 삽입 구문이 거짓 – Jens

+0

트리거가 트리거를 만들려면 변경 될 때, 이상한'add_history' ON UPDATE 후에'물에 잠기 게하다 집합으로 EACH ROW INSERT위한 을 meters' 데시 리터 = 5, 작동, 동일한 삽입 – user2473664

답변

0

이 시도 :

CREATE TRIGGER `add_history` AFTER UPDATE ON `meters` 
FOR EACH ROW 

IF (NEW.id = 2) THEN 
    INSERT INTO waterlog SET deciliter = 5; 
ELSEIF (NEW.id = 3) THEN 
    INSERT INTO eleklog SET kwh = 1; 
ENDIF 
+0

좋습니다. INSERTED 대신 NEW가 작동하는 것 같습니다. – user2473664

관련 문제