mysql触发器:使用if语句插入一个新表,但得到重复的结果

s4n0splo  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(166)

我正在使用一个名为dataloader的应用程序,它允许我将视图中的记录复制到表中。应用程序配置为仅在有新记录或日期列发生更改时才更新tablea。
我现在需要发送电子邮件通知,每当有一个日期的变化。
我创建了另一个表,并使用触发器将表a中的记录插入到表B中,前提是表a中的日期发生了更改。然后我运行一个脚本来比较tablea和tableb,如果记录日期发生了变化,我会发送一封电子邮件。
不过,这很好,每当dataloader进行更新时,我都会得到重复的数据。每当dataloader进行更新时,我就会得到大量的重复数据。如果我在视图中搜索相同的记录,就不会有重复的记录。表A中也没有重复项。
如果手动更改表a中记录的日期,则表B中不会出现重复的记录。
为什么我会被下面的触发器复制。

BEGIN
IF (NEW.Detail_ShipDate > OLD.Detail_ShipDate AND NEW.ShipVia='RI' ) THEN
    INSERT INTO nextgenorders2
        (`Order_Number` , `d_Detail_ShipDate` , `New_Detail_ShipDate` , `ShipTo_Name` , `Serial` , `Item` , `Item_Description` , `ShipVia` , `Rep_Name` , `EnteredBy` , `AssignedPerson` , `Status` ) 
    VALUES 
        (NEW.Order_Number, OLD.Detail_ShipDate, NEW.Detail_ShipDate, NEW.ShipTo_Name, NEW.Serial, NEW.Item, NEW.Item_Description, NEW.ShipVia, NEW.Rep_Name, NEW.EnteredBy, NEW.AssignedPerson, NEW.Status);
END IF;
END

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题