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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM