您无法 在 更新 后 触发器中更新表中的行。
也许您想要这样的事情:
CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);
编辑:
在触发器内,您可以访问OLD
和NEW
。 OLD
是记录中的旧值,NEW
也是新值。在 before 触发器中,这些NEW
值是写入表的内容,因此您可以对其进行修改。在 之后的 触发器中,NEW
值已被写入,因此无法对其进行修改。我认为MySQL文档很好地解释了这一点。