如何安排事件来截断每天给定时间的mysql表数据?

时间:2017-04-21 04:43:13

标签: php mysql

我已创建出勤下载程序,并使用我缺席或出现的员工数据。下午5点后,应删除出勤数据表。我怎么能用mysql调度呢?

2 个答案:

答案 0 :(得分:2)

您需要编写一个查询来删除表中的记录。

DELETE * FROM employee;

然后将其放在任何文件中,然后必须在托管服务器上设置CRON。 参考linux服务器https://kayako.atlassian.net/wiki/spaces/DOCS/pages/5734656/Setting+up+a+server+cron+or+scheduled+task

如果您使用的是Windows服务器,则可以使用 http://www.web-site-scripts.com/knowledge-base/article/AA-00487/0/Setup-Cron-job-on-Windows-7-Vista-2008.html

答案 1 :(得分:1)

选项1:

  1. 转到命令提示符(终端)
  2. 键入which mysql,您将获得 Mysql路径
  3. 键入sudo crontab -e以编辑Cron列表
  4. 在crontab中添加以下行:

    / usr / bin / mysql -uroot -ppassword -hlocalhost -Ddbname -e" TRUNCATE TABLE juice box"

  5. 它应该可以正常工作。

    这是因为cron在一个帐户下执行,该帐户既没有定义PATH,也没有包含mysql的路径。

    选项2:

    现在还有另一种选择 - 使用MySQL event

    CREATE EVENT update_date_column 
      ON SCHEDULE EVERY 1 HOUR STARTS NOW()
      DO TRUNCATE TABLE juicebox;
    

    如果您决定采用事件方法:

    • 使用SHOW EVENTS列出已创建的事件及其属性(例如status
    • 使用SHOW PROCESSLIST检查事件调度程序是否已启用。如果它开启,您应该看到一个过程" Daemon"由用户" event_scheduler"。
    • 如果当前未启用调度程序,请使用SET GLOBAL event_scheduler = ON;启用调度程序。
    • 有关配置事件调度程序的更多信息,请阅读here