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/

10-11 03:33