MySQL触发器是否替换为表?

MySQL触发器是否替换为表?,mysql,database-trigger,Mysql,Database Trigger,是否可以在执行替换到表中命令后应用触发器?我想这与更新后的情况相同,但似乎不是这样 我有一个.csv文件,每天下载一次,然后将数据插入我的数据库,如下所示: LOAD DATA LOCAL INFILE 'mycsv.csv' replace INTO TABLE mytable FIELDS TERMINATED BY ','; 是否可以对此应用触发器 我的触发器设置为在更新后执行: BEGIN IF !(NEW.`Trend Price` <=> OLD.`Trend Pric

是否可以在执行
替换到表中
命令后应用触发器?我想这与
更新
后的情况相同,但似乎不是这样

我有一个
.csv
文件,每天下载一次,然后将数据插入我的数据库,如下所示:

LOAD DATA LOCAL INFILE 'mycsv.csv'
replace INTO TABLE mytable
FIELDS TERMINATED BY ',';
是否可以对此应用触发器

我的触发器设置为在更新后执行

BEGIN
IF !(NEW.`Trend Price` <=> OLD.`Trend Price`) THEN
INSERT INTO trend_prices values (old.idProduct, old.`Trend Price`, NEW.`Trend Price`, NOW());
END IF;
END
开始
如果!(新。‘趋势价格’旧。‘趋势价格’)然后
插入趋势价格值(old.idProduct,old.'trend Price',NEW.'trend Price',NOW());
如果结束;
结束

它不使用更新触发器,而是使用插入和删除(在需要时)

  • 插入前
  • 删除前(如果正在替换行)
  • 删除后(如果正在替换行)
  • 插入后

  • 来源:

    它不使用更新触发器,而是使用插入和删除(在需要时)

  • 插入前
  • 删除前(如果正在替换行)
  • 删除后(如果正在替换行)
  • 插入后

  • 来源:

    REPLACE=删除旧的+插入新的。在此过程中没有更新。我明白了。所以我需要修改插入数据的方式?因为replace不允许我使用触发器访问旧数据?replace=删除旧数据+插入新数据。在此过程中没有更新。我明白了。所以我需要修改插入数据的方式?因为replace不允许我使用触发器访问旧数据?@Akina我刚刚在MacOS MySQL 5.7上测试了触发器:如果没有要替换的记录,它会在插入之前(1)触发,在插入之后(2)触发。如果有一条记录要替换,则会激发(1)插入前,(2)删除前,(3)删除后,(4)插入后-如上所述。我的问题没什么要解决的。测试过了。真正地很抱歉谢谢,现在我知道有点不对劲了。@Akina我刚刚在MacOS MySQL 5.7上测试了触发器:如果没有要替换的记录,它会在插入之前激发(1),在插入之后激发(2)。如果有一条记录要替换,则会激发(1)插入前,(2)删除前,(3)删除后,(4)插入后-如上所述。我的问题没什么要解决的。测试过了。真正地很抱歉谢谢你,现在我知道错少了一点。