一段时间后如何自动删除MySQL数据库中的数据?

时间:2019-04-04 11:27:25

标签: php mysql

我有一个名为$ stack bench my-package:bench:gauge another-package:bench:criterion 的表。我想每30天删除一次日志。有没有可能自动执行此操作的方法。我在项目中使用user_logs

2 个答案:

答案 0 :(得分:2)

您可以设置一个事件来删除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)

答案 1 :(得分:0)

在这里,您应该在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