建立履历记录表

CREATETABLE`mysql`.`t_event_history`(`dbname`VARCHAR(128)NOTNULLDEFAULT'',`eventname`VARCHAR(128)NOTNULLDEFAULT'',`starttime`DATETIMENOTNULLDEFAULT'0000-00-0000:00:00',`endtime`DATETIMEDEFAULTNULL,`issuccess`INT(11)DEFAULTNULL,`duration`INT(11)DEFAULTNULL,`errormessage`VARCHAR(512)DEFAULTNULL,`randno`INT(11)DEFAULTNULL,PRIMARYKEY(`dbname`,`eventname`,`starttime`),KEY`ix_endtime`(`endtime`),KEY`ix_starttime_randno`(`starttime`,`randno`))ENGINE=INNODBDEFAULTCHARSET=utf8;


2.event 建立模板

DELIMITER$$CREATEDEFINER=`root`@`localhost`EVENT`job_update_status`ONSCHEDULE#修改以下调度信息EVERY5minuteSTARTSnow()ONCOMPLETIONPRESERVEENABLEDOBEGINDECLAREr_codeCHAR(5)DEFAULT'00000';DECLAREr_msgTEXT;DECLAREv_errorINTEGER;DECLAREv_starttimeDATETIMEDEFAULTNOW();DECLAREv_randnoINTEGERDEFAULTFLOOR(RAND()*100001);INSERTINTOmysql.t_event_history(dbname,eventname,starttime,randno)#修改下面的作业名(该作业的名称)VALUES(DATABASE(),'job_update_status',v_starttime,v_randno);BEGIN#异常处理段DECLARECONTINUEHANDLERFORSQLEXCEPTIONBEGINSETv_error=1;GETDIAGNOSTICSCONDITION1r_code=RETURNED_SQLSTATE,r_msg=MESSAGE_TEXT;END;#此处为实际调用的用户程序过程CALLautomaintain.pro_update_status();END;UPDATEmysql.t_event_historySETendtime=NOW(),issuccess=ISNULL(v_error),duration=TIMESTAMPDIFF(SECOND,starttime,NOW()),errormessage=CONCAT('error=',r_code,',message=',r_msg),randno=NULLWHEREstarttime=v_starttimeANDrandno=v_randno;END$$DELIMITER;


3.查询event

select * from mysql.event;