MySQL Trigger:我可以使用Update吗?

时间:2011-07-10 06:27:42

标签: mysql triggers

CREATE TRIGGER history BEFORE UPDATE ON bestbuy

 FOR EACH ROW
 BEGIN
 IF NEW.salePrice <> OLD.salePrice THEN

 INSERT INTO history_price (modelNumber,salePrice)
        VALUES (OLD.modelNumber,OLD.salePrice);

        ELSEIF NEW.salePrice = OLD.salePrice THEN
            SET NEW.salePrice = OLD.salePrice;

    END IF;

 END

我的问题: 是否有效使用

创建TRIGGER历史记录之前更换 ON bestbuy

1 个答案:

答案 0 :(得分:1)

不,它不是 - 有效事件只是 INSERT UPDATE DELETE

您确定要使用REPLACE更新数据吗? - 您可以更改它,使用INSERT ... ON DUPLICATE KEY UPDATE更新它 - 这样您的触发器就会运行

修改以解决评论

看一下MySQL网站上的INSERT ... ON DUPLICATE KEY UPDATE Syntax - 它是一个普通的INSERT,里面有一个子句 - 我认为它比REPLACE更好,因为这不会删除记录到再次插入,它只是更新值