mysql上的触发更新第二次运行

时间:2015-05-28 22:00:51

标签: mysql database date triggers

BEGIN 
SET new.Diff = DATEDIFF(new.RepairDate,new.FaultyDate);
UPDATE po
INNER JOIN xt ON po.SerialNumber = new.SerialNumber SET po.Edate = ADDDATE(po.Edate, new.Diff)
WHERE po.SerialNumber = new.SerialNumber;
END

这是我的触发陈述。 我想添加Edate使用datediff生成的整数。 我唯一的问题是,如果我在xt表中插入测试条目来测试此触发器,则不会发生任何事情。 如果我第二次插入相同的测试条目,它在第一次尝试时应该有效。 在第二次尝试后,一切正常。 我哪里做错了? 如果这是一个愚蠢的问题,请原谅我,因为我是mysql的新手

抱歉我的英文不好,并提前感谢你!

1 个答案:

答案 0 :(得分:0)

触发器中的代码无法修改它们作为触发器的表中的数据,而不是触发触发器的行(通过SET ting NEW.[field]);这意味着没有涉及该表的UPDATEINSERTDELETE操作。

触发表的加入显然是Ibacau问题的根源。