美文网首页
简单建立MySQL定时任务

简单建立MySQL定时任务

作者: 幽遊世外 | 来源:发表于2019-01-15 15:48 被阅读0次

最近公司有个需求,需要将MySQL中某一张表中的某几个固定的字段定时同步到另外一张表中,且字段名称需要变更。至于为什么会这么做,不详细描述,大体原因是公司奇葩。

  1. 首先检查是否开启了定时任务,需要用到一下代码
查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%';
将事件计划开启 : SET GLOBAL event_scheduler = 1;
将事件计划关闭 : SET GLOBAL event_scheduler = 0;
关闭事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
开启事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
查看事件任务 : SHOW EVENTS;
  1. 创建一个存储过程
DROP PROCEDURE IF EXISTS `create_mes_sync_record`; 
DELIMITER ;;
CREATE  PROCEDURE `create_mes_sync_record`    #创建一个名为create_mes_sync_record的存储过程
    COMMENT '同步MES数据'
BEGIN 
    insert into mes_sync (
        vin, sn, car_conf_code, 
        series_code, series_name, product_time, created_at, updated_at, del_flag
        ) select 
        res.vin_code, res.btm_sn, 
        concat(res.type_code, '.', res.car_code), 
        res.option_code, res.option_code, res.update_time, NOW()+interval 8 hour, NOW()+interval 8 hour, 0        #这里的时间+8小时因为mysql在docker容器中,而容器时间与北京时间相差8小时
        from
            (select * from btm_check_result b 
                where vin_code not in (
                                        select vin from mes_sync m)) res
END
;;
DELIMITER ;        #总体来说,就是把btm_check_result中的一部分字段重命名后插入mes_sync表中
  1. 设置一个定时任务,调用这个存储过程
DELIMITER //
DROP EVENT IF EXISTS event_mes_sync_record//
CREATE EVENT event_mes_sync_record
on schedule EVERY 1 DAY STARTS date_add(curdate(),interval 1 DAY_HOUR)     #射箭间隔为每天,开始时间为现在的日期的凌晨0点,加上1小时(即凌晨1点)
do 
BEGIN
        call create_mes_sync_record;
END//
DELIMITER ;

这样就可以了,如果不放心,可以使用SHOW EVENTS命令来查看定时任务是否生效

相关文章

  • 简单建立MySQL定时任务

    最近公司有个需求,需要将MySQL中某一张表中的某几个固定的字段定时同步到另外一张表中,且字段名称需要变更。至于为...

  • linux下进行定时mysql数据库全量备份

    mysql定时备份 需求:在每天23:30对当天的数据库进行备份。 建立定时任务 命令:crontab -e 编写...

  • MySQL存储过程与定时任务

    记录下自己写的MySQL简单存储过程和定时任务 统计有多少个app 统计定时任务 停止和删除定时任务 参考文档:m...

  • Springboot 整合Quartz

    描述 Springboot 整合Quartz, 实现简单定时任务。Quartz的JobStore配置使用MySQL...

  • mysql简单的定时任务

    一、创建函数/存储过程:CREATE DEFINER=admin@172.16.%.% PROCEDURE pro...

  • Linux笔记

    Linux定时任务 Mysql备份 Linux+Mysql定时备份 * * * * * user task分 时 ...

  • Linux定时任务

    查看当前的定时任务 建立定时任务 建立定时脚本 编辑内容如下 追加定时任务 执行上面的命令vim会自动打开一个文件...

  • MySQL定时任务

    一、查看定时任务是否开启 二、开启关闭定时任务 三、建立定时任务,实例 四、修改事件 注: 其中的存储过程为 执行...

  • MySQL定时任务

    -- 查看定时任务是否开启 SHOW VARIABLES LIKE '%event_sche%'; -- 开启定时...

  • MYSQL定时任务

    创建存储过程: 每月执行存储过程(带下划线的是自己定义的):

网友评论

      本文标题:简单建立MySQL定时任务

      本文链接:https://www.haomeiwen.com/subject/dwrydqtx.html