【发布时间】:2020-05-28 15:51:53
【问题描述】:
所以我在这里确实有理解问题。如果您能帮助消除我的困惑,我将不胜感激。 所以我有 2 个表 table_1 和 table_2 ,这两个表都具有与 'id' pk auto increment 和 'name' varchar(20) 相同的列。 假设我在 table_1 上已经有一个插入后触发器,我在 table_1 中插入的所有内容都将相同的副本存储在 table_2 中。 现在我想在同一个表(table_1)上应用更新触发器来控制是否有人试图修改 table_1 中的名称,它应该从 table_2 中获取名称并将正确的名称插入回 table_1。 我希望我解释得很好。我将分享我制作的更新后触发器,但它不起作用。如果你能帮忙,我会非常高兴。谢谢你
delimiter $$
CREATE TRIGGER `Practice`.`table_1_after_UPDATE` AFTER UPDATE ON `table_1` FOR EACH ROW
BEGIN
if old.name != new.name then
update table_1
set name = table_2.name
where id = table_2.id;
end if;
END$$
delimiter ;
【问题讨论】:
-
1) 在 AFTER UPDATE 触发器中设置任何值都没有意义 - 记录已经更新。 2)您无法更新定义触发器的表。
标签: mysql database triggers database-trigger auto-update