2014-01-21 1 views
0

나는이 같은 쿼리를 평가하는 SQL 트리거를하고 싶습니다 :트리거 조건

미완성이없는 경우 (1의 ID와 표에서 모든 행이 완성 된 것을 말해 것
IF NOT (SELECT * FROM table1 WHERE table1.id=1 AND table1.finished=0) 
DO 
UPDATE table2 SET finished=1 WHERE table2.id=table1.id 

(0) 행), 그렇다면 table2를 업데이트하고 1로 끝난 값을 설정해야합니다.

누구나 트리거 구조를 도와 줄 수 있습니까? 나는 그것에 관해서 새로운 사람이다.

+1

RTFM : http://dev.mysql.com /doc/refman/5.0/en/create-trigger.html –

+0

무언가를 시도해 보시고, 여기에 게시하십시오. 사람들이 도움이 될 것입니다. 나는 그것을 정말로 원하는 것이 아니라고 생각합니다. – Mihai

+0

@Mihai 제 질문에 제시된 코드는 트리거 논리에서 최선을 다해 시도합니다. 고맙습니다. – user2703038

답변

0

당신은 그것을 이런 식으로 여기

DELIMITER // 
CREATE TRIGGER tg_au_table1 
AFTER UPDATE ON table1 
FOR EACH ROW 
BEGIN 
    IF NOT OLD.finished <=> NEW.finished THEN 
    UPDATE table2 t 
     SET finished = (EXISTS(SELECT * 
           FROM table1 
           WHERE id = t.id 
           AND finished = 0)) 
    WHERE id = NEW.id; 
    END IF; 
END// 
DELIMITER ; 

을 할 수있다 SQLFiddle 데모 확장 대답은 다른 질문에 제공

https://stackoverflow.com/a/21270582/1920232