溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql如何創(chuàng)建event并實現(xiàn)保存event執(zhí)行history

發(fā)布時間:2021-10-27 16:51:02 來源:億速云 閱讀:317 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章給大家分享的是有關mysql如何創(chuàng)建event并實現(xiàn)保存event執(zhí)行history的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1.創(chuàng)建保存信息表

點擊(此處)折疊或打開

  1. CREATE TABLE mysql.t_event_history (

  2.   dbname VARCHAR(128) NOT NULL DEFAULT ,

  3.   eventname VARCHAR(128) NOT NULL DEFAULT ,

  4.   starttime DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00,

  5.   endtime DATETIME DEFAULT NULL,

  6.   issuccess INT(11) DEFAULT NULL,

  7.   duration INT(11) DEFAULT NULL,

  8.   errormessage VARCHAR(512) DEFAULT NULL,

  9.   randno INT(11) DEFAULT NULL,

  10.   PRIMARY KEY (dbname,eventname,starttime),

  11.   KEY ix_endtime (endtime),

  12.   KEY ix_starttime_randno (starttime,randno)

  13. ) ENGINE=INNODB DEFAULT CHARSET=utf8;


2.創(chuàng)建event模版

點擊(此處)折疊或打開

  1. DELIMITER $$

  2. CREATE EVENT job_del_expire_privileges ON SCHEDULE

  3. #修改以下調(diào)度信息

  4. EVERY 10 minute STARTS current_timestamp ON COMPLETION PRESERVE ENABLE DO

  5. BEGIN

  6.  DECLARE r_code CHAR(5) DEFAULT '00000';

  7.  DECLARE r_msg TEXT;

  8.  DECLARE v_error INTEGER;

  9.  DECLARE v_starttime DATETIME DEFAULT NOW();

  10.  DECLARE v_randno INTEGER DEFAULT FLOOR(RAND()*100001);

  11.  

  12.  INSERT INTO mysql.t_event_history (dbname,eventname,starttime,randno) VALUES(DATABASE(),'job_del_expire_privileges', v_starttime,v_randno);

  13.  

  14.  BEGIN

  15.  #異常處理段

  16.  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION

  17.  BEGIN

  18.  SET v_error = 1;

  19.  GET DIAGNOSTICS CONDITION 1 r_code = RETURNED_SQLSTATE , r_msg = MESSAGE_TEXT;

  20.  END;

  21.  

  22.  #此處為實際調(diào)用的用戶程序過程

  23.  CALL automaintain.pro_del_expire_request();

  24.  END;

  25.  

  26.  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;

  27.  

  28. END$$

  29. DELIMITER ;

感謝各位的閱讀!關于“mysql如何創(chuàng)建event并實現(xiàn)保存event執(zhí)行history”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI