記錄項目中用的觸發器

1、從collecter中觸發插入另一個庫

begin 

declare icount int;

 INSERT INTO SYNC_TASK4 (TIPTOP_CDATE,TIPTOP_TABLE_NAME,TIPTOP_PRIKEY_VALUE2,TIPTOP_PRIKEY_OLDVALUE2,TIPTOP_PRIKEY_VALUE1,TIPTOP_PRIKEY_OLDVALUE1,TIPTOP_ACTION_TAG,TIPTOP_STATUS_TAG) values(now(),'em_sampledata_collect',NEW.ID,NEW.ID,NEW.ID,NEW.ID,'INSERT',0); 
 
	

	  INSERT INTO atm_ems.es_collect_data (collectItemCode,collectTime,collectValue,couValue) values(new.TagID, new.SampTime,new.		 TagValue,new.CouValue); 
		
		select count(1) into icount from atm_ems.es_collect_data_real where collectItemCode = new.TagID;
		if icount=0 then
				insert into atm_ems.es_collect_data_real (collectItemCode,collectTime,collectValue,couValue) values (new.TagID, new.SampTime,new.TagValue,new.TagValue);
		else
				UPDATE atm_ems.es_collect_data_real set collectTime=new.SampTime, collectValue=new.TagValue, couValue=new.TagValue where collectItemCode = new.TagID;
    end if;

 end

2、數據插入觸發彙總天月年

begin
		declare insertTime datetime;
		declare beginTime datetime;
		declare endTime datetime; 
		declare sumValue decimal(16,4);
    declare icount int;
		set insertTime=date_add(new.collectTime, interval -1 minute);
		set beginTime=STR_TO_DATE(date_format(insertTime, '%Y-%m-%d %H:%00:%00'),'%Y-%m-%d %H:%i:%s');
		set endTime=STR_TO_DATE(date_format(date_add(insertTime, interval 1 hour), '%Y-%m-%d %H:%00:%00'),'%Y-%m-%d %H:%i:%s');
		
		
		
		select round(sum(couValue),4)  into sumValue from es_collect_data where collectItemCode = new.collectItemCode and collectTime>beginTime and collectTime<=endTime; 
    select count(1) into icount from es_collect_data_hour where collectItemCode = new.collectItemCode and collectTime=beginTime;
		if icount=0 then
				insert into es_collect_data_hour (collectItemCode,collectTime,couValue) values (new.collectItemCode,beginTime,sumValue);
		else
				UPDATE es_collect_data_hour set couValue=sumValue where collectItemCode = new.collectItemCode and collectTime=beginTime;
    end if;

		set beginTime=STR_TO_DATE(date_format(insertTime, '%Y-%m-%d %00:%00:%00'),'%Y-%m-%d %H:%i:%s');
		set endTime=STR_TO_DATE(date_format(date_add(insertTime, interval 1 day), '%Y-%m-%d %00:%00:%00'),'%Y-%m-%d %H:%i:%s');
		select round(sum(couValue),4)  into sumValue from es_collect_data where collectItemCode = new.collectItemCode and collectTime>beginTime and collectTime<=endTime; 
    select count(1) into icount from es_collect_data_day where collectItemCode = new.collectItemCode and collectTime=beginTime;
		if icount=0 then
				insert into es_collect_data_day (collectItemCode,collectTime,couValue) values (new.collectItemCode,beginTime,sumValue);
		else
				UPDATE es_collect_data_day set couValue=sumValue where collectItemCode = new.collectItemCode and collectTime=beginTime;
    end if;

		set beginTime=STR_TO_DATE(date_format(insertTime, '%Y-%m-%01 %00:%00:%00'),'%Y-%m-%d %H:%i:%s');
		set endTime=STR_TO_DATE(date_format(date_add(insertTime, interval 1 MONTH), '%Y-%m-%01 %00:%00:%00'),'%Y-%m-%d %H:%i:%s');
		select round(sum(couValue),4)  into sumValue from es_collect_data where collectItemCode = new.collectItemCode and collectTime>beginTime and collectTime<=endTime; 
    select count(1) into icount from es_collect_data_month where collectItemCode = new.collectItemCode and collectTime=beginTime;
		if icount=0 then
				insert into es_collect_data_month (collectItemCode,collectTime,couValue) values (new.collectItemCode,beginTime,sumValue);
		else
				UPDATE es_collect_data_month set couValue=sumValue where collectItemCode = new.collectItemCode and collectTime=beginTime;
    end if;
 end

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章