Php 如何自动删除数据库中存在一个月的mysql记录
我想自动删除mysql表记录。我的项目是一个查询应用程序。一个客户端通过移动应用向服务器提问。如果Equiry中的人没有回答,这个问题必须在一个月后自动删除。我怎么做?使用mysql事件?我使用的是wampserver。如果客户要求你“删除”一条记录,你应该知道你应该找到更好的解决方案。删除用户的记录是不可行的,如果您想再次使用该数据该怎么办 你要做的是加几根柱子。添加一个带有日期的“开始时间”值,并添加一个“活动”记录,您可以在其中声明1或0是否处于活动状态 您可以运行任务将活动值更改为0,并在应用程序中仅获取活动值 对于MySQL,您可以使用以下内容:Php 如何自动删除数据库中存在一个月的mysql记录,php,mysql,Php,Mysql,我想自动删除mysql表记录。我的项目是一个查询应用程序。一个客户端通过移动应用向服务器提问。如果Equiry中的人没有回答,这个问题必须在一个月后自动删除。我怎么做?使用mysql事件?我使用的是wampserver。如果客户要求你“删除”一条记录,你应该知道你应该找到更好的解决方案。删除用户的记录是不可行的,如果您想再次使用该数据该怎么办 你要做的是加几根柱子。添加一个带有日期的“开始时间”值,并添加一个“活动”记录,您可以在其中声明1或0是否处于活动状态 您可以运行任务将活动值更改为0,并
CREATE
EVENT `your_event`
ON SCHEDULE EVERY 1 DAY
DO BEGIN
UPDATE table SET active = 0 WHERE your_date < date_sub(now(), interval 1 month)
如果你真的想,你可以在那里使用DELETE
实际上,我们还没有测试过上面的代码,但它应该可以工作 客户要求在一个月后删除某些内容是一项严肃的要求。我建议做两件事。首先,向数据库中的每一行添加创建日期,并使用以下方法访问数据库:
select t.*
from table t
where t.creationdate >= date(now()) - interval 1 month;
这样可以确保在任何查询中只获得适当的行。事实上,您可以将其包装到视图中,并且只在应用程序中使用该视图
然后,在空闲时运行作业以删除任何超过一个月的内容:
delete from t
where t.creationdate < date(now()) - interval 1 month;
使用此方法,用户将永远不会看到旧值,即使您错过了运行delete。此外,您可以在服务器上安排一段安静的删除时间,这样就不会干扰其他活动。Cronjob是一个非常简单的解决方案,它可能会有所帮助。.我通常编写一个php脚本,使用任务调度器进行维护并每天运行。