mysql通過事件定時刪除過期數據記錄方法


1、  查看MySQL是否開啟了事件功能

查看命令:

show variables like '%sc%';

打開event_scheduler(臨時開啟,MySQL服務重啟后時效)

SET GLOBAL event_scheduler = ON;

永久開啟方法:my.cnf中[mysqld]添加event_scheduler=on #重啟服務

2、  創建事件

create event myevent on SCHEDULE every 5 second do delete from Syslog.SystemEvents where ReceivedAt<(CURRENT_TIMESTAMP() + INTERVAL -5 DAY);#刪除5天前的數據

說明:

ReceivedAt:數據庫Syslog.Systemevents表中的時間字段

(date,INTERVAL expr type):

date:數據庫當前時間CURRENT_TIMESTAMP()

INTERVAL:關鍵字(間隔)

expr:具體的時間間隔(-5)

type:時間單位:

MICROSECOND

間隔單位:毫秒

SECOND

間隔單位:秒

MINUTE

間隔單位:分鍾

HOUR

間隔單位:小時

DAY

間隔單位:天

WEEK

間隔單位:星期

MONTH

間隔單位:月

QUARTER

間隔單位:季度

YEAR

間隔單位:年

SECOND_MICROSECOND

復合型,間隔單位:秒、毫秒,expr可以用兩個值來分別指定秒和毫秒

MINUTE_MICROSECOND

復合型,間隔單位:分、毫秒

MINUTE_SECOND

復合型,間隔單位:分、秒

HOUR_MICROSECOND

復合型,間隔單位:小時、毫秒

HOUR_SECOND

復合型,間隔單位:小時、秒

HOUR_MINUTE

復合型,間隔單位:小時分

DAY_MICROSECOND

復合型,間隔單位:天、毫秒

DAY_SECOND

復合型,間隔單位:天、秒

DAY_MINUTE

復合型,間隔單位:天、分

DAY_HOUR

復合型,間隔單位:天、小時

YEAR_MONTH

復合型,間隔單位:年、月

 

如果存在事件,請先刪除,刪除命令:drop event if exists myevent;

3、  開啟事件

alter event myevent on completion preserve enable;

4、關閉事件的命令:alter event myevent on completion preserve disable;


免責聲明!

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



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