我想创建一个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中id为1的所有行都已完成(如果没有未完成的(0)行),如果是,则应更新table2并将完成的值设置为1。
任何人都可以帮助我使用Trigger结构吗?谈到这一点,我是新人。
答案 0 :(得分: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 演示
中提供了扩展答案