mysql如何创建event并实现保存event执行history
发布时间:2022-01-12 11:29:22 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关mysql如何创建event并实现保存event执行history的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1.创建保存信息表 点击(此处)折叠或打开 CREATE TABLE mysql.t_event_history ( dbname VARCHAR(12
这篇文章给大家分享的是有关mysql如何创建event并实现保存event执行history的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1.创建保存信息表 点击(此处)折叠或打开 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.创建event模版 点击(此处)折叠或打开 DELIMITER $$ CREATE EVENT job_del_expire_privileges ON SCHEDULE #修改以下调度信息 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; #此处为实际调用的用户程序过程 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如何创建event并实现保存event执行history”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧! (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐