| 123456789101112131415161718192021222324252627282930 |
- USE industrial_data;
- -- 创建最近数据表
- CREATE TABLE recent_data (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- point_id INT NOT NULL COMMENT '数据点ID',
- bool_value BOOLEAN NULL COMMENT '布尔值',
- int_value INT NULL COMMENT '整数值',
- real_value FLOAT NULL COMMENT '实数值',
- timestamp TIMESTAMP(3) NOT NULL COMMENT '数据时间戳(毫秒精度)',
- create_time TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '数据创建时间(毫秒精度)',
- FOREIGN KEY (point_id) REFERENCES data_points(id),
- INDEX (point_id, timestamp)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='最近数据表';
- DELIMITER //
- CREATE EVENT purge_old_data
- ON SCHEDULE EVERY 1 DAY
- STARTS TIMESTAMP(CURRENT_DATE, '01:00:00') + INTERVAL 1 DAY
- COMMENT '每天凌晨删除昨天之前的所有数据'
- DO
- BEGIN
- -- 删除昨天之前的所有数据(保留昨天和今天的数据)
- DELETE FROM recent_data
- WHERE timestamp < DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY);
- END//
- DELIMITER ;
|