首页 > 解决方案 > 在mysql触发器中找到新记录时无法更新触发表中的记录

问题描述

如果在触发表中找不到imei,则无法编写触发器以插入行,如果找到,则应更新记录。

查询错误 - 失去与我的 sql 服务器的连接。

  DELIMITER $$
    create TRIGGER update_livedata4
    AFTER INSERT ON `Rawdata`
    FOR EACH ROW
    begin 
     IF Livedata.IMEI <> Rawdata.IMEI THEN
           INSERT INTO Livedata(IMEI,updatedTime,latitude,longitude,speed,ignition,fuel,altitude,battery,runHrs,alert,distance) VALUES (NEW.IMEI,NEW.updatedTime, NEW.latitude,NEW. longitude,NEW.speed,NEW.ignition,NEW.fuel,NEW.altitude,NEW.battery,NEW.runHrs,NEW.alert,NEW.distance);
        END IF;
    UPDATE Livedata SET IMEI = new.IMEI,updatedTime=new.updatedTime,latitude= NEW.latitude,longitude=NEW. longitude,speed=NEW.speed,ignition=NEW.ignition,fuel=NEW.fuel,altitude=NEW.altitude,battery=NEW.battery,runHrs=NEW.runHrs,alert=NEW.alert,distance=NEW.distance;
    END$$
    DELIMITER ;

标签: mysql

解决方案


似乎您在已编写的更新中缺少 where 子句,而该子句又比您的净读取超时时间要长....!

您愿意更新所有记录吗?

如果是这种情况,那么增加超时会有所帮助......


推荐阅读