也许我只是在密集,但希望有人可以提供帮助。我正在尝试为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
答案 0 :(得分:0)
INSERT AFTER。即使这确实有效,您也有可能更改所有其他行,然后由于违反约束而导致插入失败。
答案 1 :(得分:0)
ProductID是此产品表中的唯一键吗?如果是这样,你的UPDATE基本上只更新产生触发器的行,对吗?
这样做更简单:
user_name
这将仅在产生触发器的行中更改DateEntered列的值。