MySQL 在更新子 table 时触发更新父 table
MySQL trigger update parent table when child table is updated
我在 MySQL 数据库中使用了两个 table。 Table "parent" (parent_id, name, modified,
...) 和 table "children" (child_id, name, parent_id,
...)。关系是 parent.parent_id
<-> children.parent_id
.
我需要 MySQL 中的一个触发器,每当更新 "children" 中的相关记录时,将 "parent"-table 中的 "modified" 设置为“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"
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
我在 MySQL 数据库中使用了两个 table。 Table "parent" (parent_id, name, modified,
...) 和 table "children" (child_id, name, parent_id,
...)。关系是 parent.parent_id
<-> children.parent_id
.
我需要 MySQL 中的一个触发器,每当更新 "children" 中的相关记录时,将 "parent"-table 中的 "modified" 设置为“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"
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