BEGIN DECLARE Done int DEFAULT 0; DECLARE cjobid int; DECLARE crow int; DECLARE crows int; DECLARE cendtime datetime; DECLARE cstarttime datetime; DECLARE cr CURSOR FOR SELECT jobid,starttime,endtime from v_om_ab_timebar; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1; open cr; FETCH NEXT FROM cr INTO cjobid,cstarttime,cendtime; REPEAT SELECT count(*) INTO crow FROM `om_ab_timebar` where jobid=cjobid and endtime=cstarttime; SELECT count(*) INTO crows FROM `om_ab_timebar` where jobid=cjobid and endtime=cendtime; IF crow+crows=0 THEN insert into `om_ab_timebar`(starttime,endtime,jobid) values(cstarttime,cendtime,cjobid); ELSE update `om_ab_timebar` set endtime=cendtime where jobid=cjobid and endtime=cstarttime; END IF; FETCH NEXT FROM cr INTO cjobid,cstarttime,cendtime; UNTIL Done END REPEAT; CLOSE cr; INSERT into om_ab_fg_output(fg,endtime,route,jobid,type,statue) SELECT * from v_om_ab_fg_threeminute_ok; END