2012-09-03 36 views
0

蔭使用下面的代碼來運行使用 IF CURRENT_TIME() = '23:50:00'如何在perticular時間了,如果

但這樣做此事件中使用exexute MySQL事件,每一秒都具有比較服務器的時間。我們可以出,如果condistion

drop event OEAuditEvent; 

DELIMITER $$ 

CREATE EVENT OEAuditEvent 
ON SCHEDULE EVERY 1 SECOND 
STARTS '2012-08-30 09:00:10' 

DO 
BEGIN 

DECLARE a CHAR(20); 
DECLARE b,c,d INT; 
DECLARE done INT DEFAULT FALSE; 

IF CURRENT_TIME() = '23:50:00' THEN 
begin 

DECLARE cur CURSOR FOR select OE_User,count(OE_User) from RNCM_Status where date(OE_Date)=CURDATE() group by OE_User; 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 

OPEN cur; 
read_loop: LOOP 


FETCH cur INTO a, b; 

SET c=ceil((b*5)/100); 
insert into test values(a,b); 
IF done THEN 

      LEAVE read_loop; 
ELSE 
      insert into OE_Audit(MDN,CAF,UploadedDate,OEUser,OEDate,UserCount,QCCount,intime) select MDN,CAF,UploadedDate,OE_User,OE_Date,b,c,now() from RNCM_Status where OE_User=a and date(OE_Date)=CURDATE() order by rand() limit c; 
    END IF; 

END LOOP; 
CLOSE cur; 
end ; 
END IF; 



END $$ 

DELIMITER ; 

回答

1

實現這個到底爲什麼不創建事件本身在23:00運行,並刪除IF徹底?

CREATE EVENT OEAuditEvent 
ON SCHEDULE EVERY 1 DAY 
STARTS '2012-08-30 23:00:00'