如何每24小时将mysql列重置为0?

时间:2019-02-01 18:18:07

标签: php mysql phpmyadmin

我有一个网站,允许用户下载PDF文件, 我为每个用户每天限制下载10个文件,并将数字存储在MySQL数据库中。一切正常!

问题是:限制将被永久设置,我希望将其每24小时重置为0。 是否有任何phpmyadmin命令或每隔24小时自动将该列重置为0的方法或其他方法!

2 个答案:

答案 0 :(得分:2)

我会尝试另一种方式。

我将添加表download_log(user_id,file_id,timestamp)并在每次用户下载某些文件时插入行。 要检查用户是否达到上限,您可以检查他有多少下载量在过去24小时进行。 像

SELECT COUNT(*) FROM download_log WHERE user_id = ? AND timestamp > DATE_SUB(NOW(), INTERVAL 1 DAY)

要安排一些操作可以使用cron运行脚本

答案 1 :(得分:0)

您似乎已经将下载计数存储在各种日志表中。

为使这些计数过期,我建议使用MySQL固有的事件调度程序。您可能需要在服务器参数中启用它。

语法看起来像这样:

CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
    DO
      UPDATE count_db.count_table SET count_column = 0;