这是如何工作的? mysql是否仅在插入时调用BEFORE INSERT触发器;如果要运行的查询如下,则每次发生插入或更新时都会调用“
在重复键更新中插入某些值(...)......
我想在插入行时根据其他col的值更新列的值。但是,我不希望这种行为更新。将要执行的查询总是如上所述。为此我选择了INSERT AFTER。但是,我无法使用AFTER INSERT TRIGGER更新col作为
SET NEW.score = NEW.score1 + NEW.score2;
我在某处读到过,在这种情况下,BEFORE INSERT触发器将允许每次执行上述查询时触发触发器。这是真的 ?如果是,我如何使用触发器解决此问题。
答案 0 :(得分:0)
只有在插入或每次插入或更新发生时,mysql才会调用AFTER INSERT触发器
BEFORE INSERT触发器将为每一行激活,然后是AFTER INSERT触发器或BEFORE UPDATE和AFTER UPDATE触发器,具体取决于行是否有重复键
我不确定你到底是怎么回事。
句子“然而,我不希望这种行为更新”让我感到困惑。如果您唯一拥有的是AFTER INSERT触发器,那么如果您运行UPDATE语句则不会触发它。如果你的语句更新了一行,它将触发UPDATE触发器,而不是你的INSERT触发器。