我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL Event历史记录

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL Event历史记录

需求 SQL Server的作业历史(Job)记录是保存在msdb库中的,很方便就查询相关的Job定义,计划和历史记录,而MySQL的event却没有历史记录。为方便查看event是否正常执行以及执行结果,通过以下两个步骤来实现类似的功能。   实现 1. 在mysql库创建event执行的历史记录表
CREATE TABLE `mysql`.`udf_event_history` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`event_gid` varchar(36) NOT NULL,
`db_name` varchar(128) NOT NULL DEFAULT "",
`event_name` varchar(128) NOT NULL DEFAULT "",
`start_time` datetime(3) NOT NULL DEFAULT current_timestamp(),
`end_time` datetime(3) DEFAULT NULL,
`is_success` tinyint(4) DEFAULT 0,
`duration` decimal(15,3) DEFAULT NULL,
`error_msg` varchar(512) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_event_git` (`event_gid`),
KEY `idx_db_event_name` (`db_name`,`event_name`),
KEY `idx_s_e_time` (`start_time`,`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

2.根据以下建模板创建event

请注意根据实际情况修改相关信息
USE db1;

DELIMITER $$

CREATE DEFINER=`root`@`localhost` EVENT `event_test1` 
ON SCHEDULE EVERY 1 MINUTE STARTS "2019-01-01 00:00:00" 
ON COMPLETION PRESERVE ENABLE DO 
BEGIN  
    DECLARE r_code CHAR(5) DEFAULT "00000";  
    DECLARE r_msg TEXT;  
    DECLARE v_error INT;  
    DECLARE v_start_time DATETIME(3) DEFAULT NOW(3);
    DECLARE v_event_gid VARCHAR(36) DEFAULT UPPER(REPLACE(UUID(),"-",""));  
    
    
    INSERT INTO mysql.udf_event_history (db_name, event_name, start_time, event_gid)  
    VALUES(DATABASE(), "event_test1", v_start_time, v_event_gid);    
      
    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 db1.usp_1();
    END;  
      
    UPDATE mysql.udf_event_history 
    SET end_time = NOW(3), is_success = ISNULL(v_error), duration = TIMESTAMPDIFF(microsecond,start_time, NOW(3)) / 1000000, 
    error_msg = CONCAT("error = ", r_code,", message = ", r_msg)
    WHERE event_gid = v_event_gid;  
      
END$$  
DELIMITER ; 

 

通过查询mysql.udf_event_history表,可以知道event的开始结束时间、是否成功、执行时长、错误信息,等,为管理日常调度计划提供方便。

root@localhost [db1]select * from mysql.udf_event_history limit 2G;
*************************** 1. row ***************************
        id: 1
   db_name: db1
event_name: event_test1
start_time: 2019-12-03 15:44:00.000
  end_time: 2019-12-03 15:44:00.001
is_success: 0
  duration: 0.001
 error_msg: error = 42000, message = PROCEDURE db1.usp_2 does not exist
 event_gid: AB305D8C15A011EAB822005056AB041E
*************************** 2. row ***************************
        id: 2
   db_name: db1
event_name: event_test2
start_time: 2019-12-03 15:46:00.000
  end_time: 2019-12-03 15:46:05.405
is_success: 1
  duration: 5.405
 error_msg: NULL
 event_gid: F2B6197C15A011EAB822005056AB041E

 

参考

https://blog.csdn.net/wrh_csdn/article/details/79712778

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL Event历史记录

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL Event历史记录

需求SQL Server的作业历史(Job)记录是保存在msdb库中的,很方便就查询相关的Job定义,计划和历史记录,而MySQL的event却没有历史记录。为方便查看event是否正常执行以及执行结果,通过以下两个步骤来实现类似的功能。 实现1. 在mysq
2019-04-06

Win8.1如何清除可靠性历史记录关闭历史记录功能

最近几代的Windows系统都有个可靠性历史记录的功能,它是按一定的规则对系统过去状态进行评分。有的人讨厌这个功能,想把它关闭。不过这个功能无法关闭,只能清除记录。按照以下方法来清除可靠性历史记录:1.右击“win”
2022-06-04

vue router 删除历史记录

在使用Vue Router开发单页应用的过程中,我们经常需要让用户能够清除浏览器的历史记录。但是Vue Router并没有提供一个内置的方法帮助我们实现这一功能,所以我们需要想办法自己实现。方法一:一种方法是使用Javascript中的一个叫做“replaceState”的方法,该方法可以将当前浏览器历史记录的条目替换为新的条目,从而达到删除历史记录的目的。我们可以把这个方法和
2023-05-24

git怎么删除历史记录

Git是目前最流行的版本控制系统之一。然而,有时候我们可能需要删除Git项目中的历史记录,以便重新开始。本文将介绍如何使用Git命令和工具来删除Git项目中的历史记录。使用git reset命令删除历史记录Git reset命令可用于取消提
2023-10-22

怎么清除vps历史记录

要清除VPS(Virtual Private Server,虚拟专用服务器)的历史记录,您需要执行以下步骤:1. 登录到VPS。您可以使用SSH(Secure Shell)客户端,如PuTTY,通过VPS提供商提供的IP地址和凭据登录。2.
2023-09-14

plsql历史记录如何恢复

要恢复PL/SQL历史记录,您可以尝试以下方法:1. 使用数据库备份:如果您定期备份数据库,您可以恢复到先前的备份中,以包含PL/SQL历史记录。在还原数据库后,您将能够查看以前的PL/SQL历史记录。2. 使用日志文件:如果您启用了数据库
2023-09-09

Win8清除历史记录技巧

1、在开始界面或者任务栏打开资源管理器。 python 2、然后切换到搜索输入框,在上面找到最近的搜索内容。3、选择“清楚搜索记录”就行了,这样就变成空白了www.cppcns.com。4、如果你想将最近访问的位置列
2023-06-03

git如何修改历史记录

本篇内容介绍了“git如何修改历史记录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法:1、用“git commit --amend”命令
2023-06-26

mac safari历史记录如何查看

这篇“mac safari历史记录如何查看”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mac safari历史记录如何查看
2023-07-02

win10更新历史记录如何删除

要删除Windows 10的更新历史记录,可以按照以下步骤进行操作:1. 打开“设置”应用程序。你可以点击“开始”菜单,然后点击齿轮图标来打开“设置”。2. 在“设置”窗口中,点击“更新和安全”选项。3. 在左侧导航栏中,点击“Window
2023-08-22

编程热搜

目录