您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關mysql如何創(chuàng)建event并實現(xiàn)保存event執(zhí)行history的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1.創(chuàng)建保存信息表
點擊(此處)折疊或打開
CREATE TABLE mysql.t_event_history (
dbname VARCHAR(128) NOT NULL DEFAULT ,
eventname VARCHAR(128) NOT NULL DEFAULT ,
starttime DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00,
endtime DATETIME DEFAULT NULL,
issuccess INT(11) DEFAULT NULL,
duration INT(11) DEFAULT NULL,
errormessage VARCHAR(512) DEFAULT NULL,
randno INT(11) DEFAULT NULL,
PRIMARY KEY (dbname,eventname,starttime),
KEY ix_endtime (endtime),
KEY ix_starttime_randno (starttime,randno)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
2.創(chuàng)建event模版
點擊(此處)折疊或打開
DELIMITER $$
CREATE EVENT job_del_expire_privileges ON SCHEDULE
#修改以下調(diào)度信息
EVERY 10 minute STARTS current_timestamp ON COMPLETION PRESERVE ENABLE DO
BEGIN
DECLARE r_code CHAR(5) DEFAULT '00000';
DECLARE r_msg TEXT;
DECLARE v_error INTEGER;
DECLARE v_starttime DATETIME DEFAULT NOW();
DECLARE v_randno INTEGER DEFAULT FLOOR(RAND()*100001);
INSERT INTO mysql.t_event_history (dbname,eventname,starttime,randno) VALUES(DATABASE(),'job_del_expire_privileges', v_starttime,v_randno);
BEGIN
#異常處理段
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
SET v_error = 1;
GET DIAGNOSTICS CONDITION 1 r_code = RETURNED_SQLSTATE , r_msg = MESSAGE_TEXT;
END;
#此處為實際調(diào)用的用戶程序過程
CALL automaintain.pro_del_expire_request();
END;
UPDATE mysql.t_event_history SET endtime=NOW(),issuccess=ISNULL(v_error),duration=TIMESTAMPDIFF(SECOND,starttime,NOW()), errormessage=CONCAT('error=',r_code,', message=',r_msg),randno=NULL WHERE starttime=v_starttime AND randno=v_randno;
END$$
DELIMITER ;
感謝各位的閱讀!關于“mysql如何創(chuàng)建event并實現(xiàn)保存event執(zhí)行history”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。