CREATE DEFINER=`root`@`%` TRIGGER `carXhistory` AFTER UPDATE ON `carXvalue` FOR EACH ROW BEGIN
set @backup = (select needbackup from carXname where carXname.id = new.Xnameid);
set @valuetype = (select Valuetype from carXname where carXname.id = new.Xnameid);
set @unit = (select measurementunit from carXname where carXname.id = new.Xnameid);
set @name = (select XnameCN from carXname where carXname.id = new.Xnameid);
set @Xtype = (select Xtype from carXname where carXname.id = new.Xnameid);
if (@backup = 'Yes' and @valuetype = 'Int' and new.vaule IS NOT NULL and new.updateTime != old.updateTime) then
insert into carXhistory(Xvalueid,createTime,vaule,Xnameid,carid,measurementunit,XnameCN,Xtype) values (new.id,NOW(),new.val,new.Xnameid,new.carid,@unit,@name,@Xtype);
end if;
END
CREATE DEFINER=`root`@`%` TRIGGER `tub_carXvalue` BEFORE UPDATE ON `carXvalue` FOR EACH ROW begin
SET @CNT = (select count(*) from carXname where Xnamecn = '车轮运行时间' and id = new.Xnameid);
IF @CNT > 0 and old.val != new.val THEN
SET @LAMBCNT = (select count(*) from wheelusecount where carid = new.carid );
SET @MAXID = (select max(id) from wheelusecount where carid = new.carid);
SET @LAMBTYPE = (select val from carXvalue,carXname where carid = new.carid and carXValue.Xnameid
= carXname.id and carXname.Xnamecn = '车轮型号' );
IF old.val > new.val + 100 THEN
insert into wheelusecount(carid,wheeltype,val,updateTime) values (new.carid,@LAMBTYPE,new.val,now());
ELSE
IF @LAMBCNT > 0 THEN
update wheelusecount set val = new.val,updateTime = now(),wheeltype=@LAMBTYPE where id = @MAXID;
ELSE
insert into wheelusecount(carid,wheeltype,val,updateTime) values (new.carid,@LAMBTYPE,new.val,now());
END IF;
END IF;
END IF;
end