是否可以在应用更新后触发器的同一 table 上插入? Mysql
Is it possible to insert on the same table on which you are applying an after update trigger? Mysql
所以我这里确实有理解上的问题。如果您能帮助消除我的困惑,我将不胜感激。
所以我有 2 tables table_1 和 table_2 ,其中 tables 与 'id' pk auto increment 和 'name' 具有相同的列变种(20)。
可以说我已经在 table_1 上有一个插入后触发器,我在 table_1 中插入的所有内容都会在 table_2 中存储相同的副本。
现在我想在同一个 table (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 ;
CREATE TRIGGER `Practice`.`table_1_BEFORE_UPDATE`
BEFORE UPDATE
ON `table_1`
FOR EACH ROW
set NEW.name = OLD.name;
所以我这里确实有理解上的问题。如果您能帮助消除我的困惑,我将不胜感激。 所以我有 2 tables table_1 和 table_2 ,其中 tables 与 'id' pk auto increment 和 'name' 具有相同的列变种(20)。 可以说我已经在 table_1 上有一个插入后触发器,我在 table_1 中插入的所有内容都会在 table_2 中存储相同的副本。 现在我想在同一个 table (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 ;
CREATE TRIGGER `Practice`.`table_1_BEFORE_UPDATE`
BEFORE UPDATE
ON `table_1`
FOR EACH ROW
set NEW.name = OLD.name;