• mysql定时脚本(event),类似oracle的job


    mysql定时脚本(event),类似oracle的job
     
    我有2张表:tb_push_data 和 tb_push_data_log
    现在需要每隔一段时间将tb_push_data 符合条件的
    数据备份到表 tb_push_data_log
      www.2cto.com  
    --------------------------------------------------------------------------
     
    一、创建存储过程
     
    DELIMITER $$
     
    USE `push_server_db`$$
     
    DROP PROCEDURE IF EXISTS `proc_tb_push_data_backup`$$
     
    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_tb_push_data_backup`()
    BEGIN
        START TRANSACTION;
        
        INSERT INTO tb_push_data_log(id,created_date,data_id,gps,have_image,message,recv_name,
    recv_username,send_name,send_username,STATUS,tool,updated_date,uri,image_path,log_time)
        SELECT id,created_date,data_id,gps,have_image,message,recv_name,recv_username,send_name,
    send_username,STATUS,tool,updated_date,uri,image_path,NOW()
        FROM tb_push_data WHERE STATUS = 'ALREADY_RECEIVE';
        DELETE FROM tb_push_data WHERE STATUS = 'ALREADY_RECEIVE';
        
        COMMIT;
        END$$
     
    DELIMITER ;
     
    二、创建MYSQL事件
     
    DELIMITER $$
     
    CREATE event event_tb_push_data_backup
     
    ON SCHEDULE
     
    EVERY 5 MINUTE
     
    STARTS NOW()
     
    DO
     
    BEGIN
     
    CALL event_tb_push_data_backup();
     
    END;
     
    DELIMITER ;
     
    三、验证并修改数据库是否开启了事件  www.2cto.com  
     
    大家按照例子做完以后,可能发现没有运行event,原因大都是因为
    event_scheduler状态没打开
     
    查看event_scheduler状态
     
    show variables like '%sche%';
     
    修改event_scheduler状态
     
    set global event_scheduler=1;
  • 相关阅读:
    Educational CF # 17 C 二分,字符串 D 最长路,dp
    HDU-1878 判断无向图欧拉回路,水
    LightOJ-1094 求树直径,水
    POJ-1144 Tarjan求割点,双连通模板题
    HDU-1269 Tarjan求强连通分量,模板题
    POJ-1094 拓扑排序
    POJ-1847 最短路裸题,Floyd, Bellman, Dijkstra, Spfa
    LightOJ-1005 组合数学,组合数水题
    CF #392(2) C 暴力模拟
    Android xUtils3使用
  • 原文地址:https://www.cnblogs.com/sand-tiny/p/3978734.html
Copyright © 2020-2023  润新知