2014-01-21 6 views
0

Я хотел бы сделать SQL триггер, который будет оценивать запрос, как это:Trigger условного

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

Это было бы сказать мне, что все строки table1 с идентификатором 1 закончены (если нет незаконченных (0) строк), и если да, то он должен обновить таблицу2 и установить значение закончено на 1.

Может ли кто-нибудь помочь мне с структурой Trigger? Я новичок в этом.

+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

Смежные вопросы