【发布时间】:2019-04-04 11:27:25
【问题描述】:
我有一个名为user_logs 的表。我想每 30 天删除一次日志。有没有什么办法可以自动完成。我在我的项目中使用php and mysql。
【问题讨论】:
-
设置一个每天运行的作业,清除超过 30 天的条目。
-
听起来像是 cronjob 的工作!
我有一个名为user_logs 的表。我想每 30 天删除一次日志。有没有什么办法可以自动完成。我在我的项目中使用php and mysql。
【问题讨论】:
您可以设置一个事件来删除超过 30 天的记录,例如:
CREATE EVENT IF NOT EXISTS `Clean_Older_Than_1_month_logs`
ON SCHEDULE
EVERY 1 DAY_HOUR
COMMENT 'Clean up user_logs older than 1 month.'
DO
DELETE FROM user_logs
WHERE user_logs_date < DATE_SUB(NOW(), INTERVAL 1 MONTH)
【讨论】:
在这里,您应该在 30 天后在 Js 中使用 'setInterval()' 进行 ajax 调用。
index.html 页面
$(document).ready(function(){
setInterval(function(){
alert("Event Fire");
$.ajax({
url: "30_day_event.php",
success: function(result){
alert('database operation done');
}
});
}, 1000*60*60*24*30);
});
30_day_event.php页面
//your your logic to delete data from user_logs table
//your callback code
【讨论】: