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

时间:2014-08-13 23:58:32

标签: mysql

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

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

我可以手动登录mysql服务器

UPDATE users SET rebuy = 'no'

但我希望服务器只是因为我无法手动执行此操作。

2 个答案:

答案 0 :(得分:2)

简单的解决方案是添加一个cron-job。 这是一个非常好的教程 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

您可以完全满足您的需求。设置日期和时间以及cronjob 会自动完成

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

你的目标是获得类似的东西:

连接到您的服务器并输入:crontab -e

0 1 * * 1 /path/to/your/phpscript (未经测试,但应该没问题)

答案 1 :(得分:0)

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

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

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;

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