定時清理mysql表數據


查看定時任務開關是否開啟;

SHOW VARIABLES LIKE 'event_scheduler'
如果是off需要打開;
SET GLOBAL event_scheduler = ON

測試表:

CREATE TABLE `xc_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_time` datetime NOT NULL,
  `update_time` datetime DEFAULT NULL,
  `is_delete` tinyint(1) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
寫定時任務的事件:
DELIMITER $$
DROP EVENT
IF EXISTS deleteXcLog ; CREATE EVENT deleteXcLog ON SCHEDULE EVERY 30 SECOND ON COMPLETION PRESERVE DO

BEGIN
    INSERT INTO xc_log (create_time) VALUES    (now()) ; 
    UPDATE xc_log SET update_time = now(), is_delete = 1 WHERE TO_DAYS(now()) - TO_DAYS(create_time) > 90 AND is_delete = 0 ; 
END$$

DELIMITER ;

 

 


免責聲明!

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



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