在特定时间自动重置mysql表值的服务器

在特定时间自动重置mysql表值的服务器,mysql,Mysql,如何让服务器重置表列中的值 例如,我有一个名为“users”的表和一个名为“rebuy”的列。rebuy列包含每个用户的“是”或“否”值。我希望服务器在每周周一凌晨1:00将rebuy列重置为“否” 我可以通过手动登录mysql服务器来实现这一点 UPDATE users SET rebuy = 'no' 但我更希望服务器能够这样做,以防我无法手动执行。简单的解决方案是添加一个cron作业。 这里有一个很好的教程 你完全可以实现你想要的。设置日期、时间和作业 我会自动完成的 很难给出一个代码

如何让服务器重置表列中的值

例如,我有一个名为“users”的表和一个名为“rebuy”的列。rebuy列包含每个用户的“是”或“否”值。我希望服务器在每周周一凌晨1:00将rebuy列重置为“否”

我可以通过手动登录mysql服务器来实现这一点

UPDATE users SET rebuy = 'no'

但我更希望服务器能够这样做,以防我无法手动执行。

简单的解决方案是添加一个cron作业。 这里有一个很好的教程

你完全可以实现你想要的。设置日期、时间和作业 我会自动完成的

很难给出一个代码示例,因为它可能在不同的操作系统上有所不同

您的目标是获得以下内容:

连接到服务器并键入:
crontab-e

01**1/path/to/your/phpscript

(未测试,但应该可以)

您可以让服务器重置标志。或者,你基本上什么也做不了。也就是说,您可以存储上次设置标志的时间,而不是存储标志值。然后,使用视图根据此信息重新添加标志

因此,请定义该表,以便:

rebuy_datetime date
创建一个视图:

create view v_table as
    select t.*,
           (case when rebuy_datetime >= curdate() - interval weekday(curdate()) day + interval 1 hour 
                 then 'yes'
                 else 'no'
            end)
    from table t;

然后,当您查询表时,该标志将自动设置。

我将对此进行测试,从未听说过view,对它来说是新的。