MySQL:通过定时事件:
# COMPLETION:事件执行结束后是否要删除事件。NOT PRESERVE:不删除;PRESERVE,删除。
# SCHEDULE:调度周期
# EVENT:自定义事件名
# DEFINER:事件定义者
# STARTS:开始时间
# ENABLE:是否使能
# DO:需要执行的操作语句
# 删除表中超过三个月的数据
CREATE DEFINER=`root`@`%`
EVENT `delete_over_three_month_record`
ON SCHEDULE
EVERY 1 DAY
STARTS '2021-05-25 18:34:07'
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT '删除结果表中超过三个月的数据'
DO
DELETE FROM control_result WHERE warning_time < DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
Clickhouse:通过定义 TTL,可实现表级、字段级的数据生命周期控制。
# event_date 需为 Date 类型,如不是,可用时间日期函数转:ALTER TABLE example_table MODIFY TTL toDate(`event_date`) + toIntervalMonth(3);
# 删除表中超过三个月的数据
ALTER TABLE example_table MODIFY TTL `event_date` + toIntervalMonth(3);