如何MySQL的列重置为0,每24小时?(How to reset mysql column to

2019-10-31 07:40发布

我有一个网站,让用户下载的PDF文件,我做了下载限制,每天10个文件为每个用户和我存储的MySQL数据库里面的数字。 一切的伟大工程!

问题是:该限制将被永远地设置,我希望它重置为0每24小时。 是否有任何的phpmyadmin命令或东西各24小时,以0自动或任何其他方式重置列!

Answer 1:

它看起来像您已经存储了各种各样的日志表中的下载次数。

对于那些即将到期的数,我建议使用事件调度本地到MySQL。 您可能需要启用它在你的服务器参数。

语法将是这个样子:

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


Answer 2:

我会尝试用不同的方式。

我想补充表download_log(USER_ID,file_id的,时间戳),并插入行每一次用户下载一些文件。 要检查用户是否达到上限,您可以检查他有多少下载量在过去24小时进行。 就像是

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

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



文章来源: How to reset mysql column to 0 each 24h?