MySQL触发器不适用于表插入

时间:2016-11-18 18:56:36

标签: mysql triggers

也许我只是在密集,但希望有人可以提供帮助。我正在尝试为DateCreated列添加触发器,该列在添加行时触发。当我尝试添加时,我得到了

  

无法更新表格'产品'在存储函数/触发器中,因为它已被调用此存储函数/触发器的语句使用

我从this answer意识到这是因为MySQL因为递归循环而不允许我在插入后触发,但是我的触发器在BEFORE之前有更新,我使用NEW。我错过了什么触发器?另外,如果我想进行DateModified,我还需要改变什么?

触发器

CREATE TRIGGER `DateCreatedTriggerTS` BEFORE INSERT ON  `products` 
FOR EACH ROW UPDATE products SET DateEntered = NOW( ) WHERE ProductID = NEW.ProductID

2 个答案:

答案 0 :(得分:0)

INSERT AFTER。即使这确实有效,您也有可能更改所有其他行,然后由于违反约束而导致插入失败。

答案 1 :(得分:0)

ProductID是此产品表中的唯一键吗?如果是这样,你的UPDATE基本上只更新产生触发器的行,对吗?

这样做更简单:

user_name

这将仅在产生触发器的行中更改DateEntered列的值。