gpt4 book ai didi

插入后和更新触发器后的 MySQL

转载 作者:行者123 更新时间:2023-11-29 03:49:36 25 4
gpt4 key购买 nike

我有两个表 t1 和 t2。我在 t1 上插入后创建了两个触发器 tr1,在 t2 上更新后创建了 tr2。在我更新表 t2 的两个表中。因此,它抛出一个错误,指出 t2 表已经在另一个触发器中更新,因此无法再次更新。

如果有人遇到过此类问题并已解决,请告诉我。

提前致谢!MySQL 数据库管理员。

最佳答案

如果您想修改正在更新或插入的数据,您应该使用 BEFORE UPDATE 和/或 BEFORE INSERT 触发器,然后使用 NEW 别名(它引用行,即正在插入或行,因为它将在应用更新后查看) - 您实际上可以修改正在插入的字段。 OLD 别名引用应用更新之前的行或删除之前的行(在删除时触发的触发器中)。

因此,对于触发器 tr2,您可能需要执行以下操作:

DELIMITER $$
CREATE TRIGGER tr2 BEFORE UPDATE ON t2
FOR EACH ROW BEGIN
SET NEW.field1 = some_value_you_want_to_set_it_to;
END;
$$
DELIMITER ;

因为在触发器中您实际上无法更新已经更新的表,没错。

关于插入后和更新触发器后的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com