MySQL 触发器 : Can I use Update?

标签 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

我的问题: 是否有效使用

在百思买替换之前创建触发器历史记录

最佳答案

不,它不是 - 有效事件只有INSERTUPDATEDELETE

您确定要使用 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/

相关文章:

mysql - 使用 include 时 Sequelize 查询仅返回一行

php - 选择下拉值以从数据库 mysql 获取填充数据

c# - 未能发布 : could not find required file 'setup.bin'

mysql - 将 Rails ActiveRecord GROUP 查询从 MySQL 转换为 PostgreSQL

.net - WPF 在 ViewModel.PropertyChanged 事件上更改按钮内容

sql - 特定插入后的 T-SQL 触发器

php - 如何在定义的日期触发功能

php - 单例类和mysqli事务

mysql - 无法在 MySQL 触发器中将变量设置为 CURRENT_DATE()

php - mySQL 数据库 - 每 15 分钟将某些列重置为 '0'