2014-01-21 118 views
0

我想作一個SQL觸發器,將評估這樣的查詢:觸發條件

IF NOT (SELECT * FROM table1 WHERE table1.id=1 AND table1.finished=0) 
DO 
UPDATE table2 SET finished=1 WHERE table2.id=table1.id 

那會告訴我,從表1中的所有行爲1的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