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
我的问题: 是否有效使用
在百思买替换之前创建触发器历史记录
最佳答案
不,它不是 - 有效事件只有INSERT、UPDATE 和DELETE。
您确定要使用 REPLACE
更新数据吗? - 你可以改变它,用 INSERT ... ON DUPLICATE KEY UPDATE
更新它 - 这样你的触发器就会运行
编辑以解决评论
看看INSERT ... ON DUPLICATE KEY UPDATE Syntax在 MySQL 站点上 - 这是一个普通的 INSERT,其中有一个子句 - 我也认为它比 REPLACE
表现更好,因为这不会删除记录以再次插入它,它只是更新值
关于MySQL 触发器 : Can I use Update?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6639610/