更新子表时,MySQL触发更新父表

时间:2019-04-12 12:32:41

标签: mysql database-trigger

我在MySQL数据库中使用了两个表。表“父”(parent_id, name, modified, ...)和表“子”(child_id, name, parent_id, ...)。关系为parent.parent_id <-> children.parent_id

我需要MySQL中的触发器,以便在“儿童”中的相关记录更新时将“父”表中的“修改”设置为“ 1”。

感谢您的帮助!

下面是我尝试的代码

DELIMITER $$
CREATE TRIGGER set_parent_modified_after_update
AFTER UPDATE ON children

BEGIN 
  UPDATE parent SET parent.modified = 1 WHERE parent.parent_id = children.parent_id;
END$$ 
DELIMITER ;

它导致mysql错误->“ unknown field children.parent_id”

1 个答案:

答案 0 :(得分:2)

DELIMITER $$
CREATE TRIGGER set_parent_modified_after_update
AFTER UPDATE ON children
FOR EACH ROW
BEGIN 
  UPDATE parent SET parent.modified = 1 WHERE parent.parent_id = new.parent_id;
END$$ 
DELIMITER ;

Problem Solved
Thanks @sticky bit