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
答案 0 :(得分:1)
不,它不是 - 有效事件只是 INSERT , UPDATE 和 DELETE 。
您确定要使用REPLACE
更新数据吗? - 您可以更改它,使用INSERT ... ON DUPLICATE KEY UPDATE
更新它 - 这样您的触发器就会运行
修改以解决评论
看一下MySQL网站上的INSERT ... ON DUPLICATE KEY UPDATE Syntax - 它是一个普通的INSERT,里面有一个子句 - 我认为它比REPLACE
更好,因为这不会删除记录到再次插入,它只是更新值