zoukankan      html  css  js  c++  java
  • mysql定义事件并查看事件是否执行

    定义事件:

    -- 定义事件,删除10天前数据,并指定每5秒执行一次;Event_syslog为事件名称
    CREATE EVENT IF NOT EXISTS Event_syslog ON SCHEDULE EVERY 5 SECOND STARTS curdate()
    ON COMPLETION PRESERVE
    DO 
    
    BEGIN
            -- 定义时间变量
            DECLARE dattime DATETIME;
            set dattime = DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL 10 DAY),'%Y%m%d');-- 10天前
            
            DELETE FROM syslog
            WHERE DATE_FORMAT(CreateTime,'%Y%m%d')<dattime
            ORDER BY CreateTime 
            limit 100;-- 每次删除100条
    END

    一开始事件没有执行,后来通过以下命令发现任务里面根本就没有该事件。

    show processlist;

    然后再通过下面的命令查看事件是否启用?

    show variables like 'event_scheduler';

    通过上图可以看到,事件没有启用,那么我们启用事件就行了。 执行以下命令:

    set global event_scheduler=on;

    然后再次执行 show processlist; 就行了,结果如下图:

    然后你定义的事件也可以顺利执行了。 

    参考文章:https://blog.csdn.net/qq_27559331/article/details/95757305

  • 相关阅读:
    ssd笔记
    深度学习 参数笔记
    NVIDIA驱动安装
    下载大文件笔记
    vue中使用echart笔记
    torch.no_grad
    暑期第二周总结
    暑期第一周总结
    第十六周学习进度
    期末总结
  • 原文地址:https://www.cnblogs.com/subendong/p/13227831.html
Copyright © 2011-2022 走看看