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