如何创建每24小时运行一次的活动?

时间:2009-11-14 06:01:49

标签: mysql events

我需要每24小时运行一次:

delete tags from tags left join tagowners on tags.id=tagowners.tagId
where tagowners.tagId is null;

5 个答案:

答案 0 :(得分:15)

CREATE EVENT cleartags
    ON SCHEDULE EVERY 24 HOUR
    DO 
      delete tags from tags left join tagowners on tags.id=tagowners.tagId
    where tagowners.tagId is null;

答案 1 :(得分:4)

首先在SQl查询浏览器中执行此操作

SET GLOBAL event_scheduler = ON;

然后执行这个。它将在凌晨12:00每24小时触发一次

CREATE EVENT event1
  ON SCHEDULE EVERY '1' DAY
  STARTS '2013-01-21 00:00:00'    
DO 
delete tags from tags left join tagowners on tags.id=tagowners.tagId
    where tagowners.tagId is null;

答案 2 :(得分:0)

在Linux系统上运行?使用cron。我认为MySQL没有内置功能来实现这一目标。

答案 3 :(得分:0)

使用cron

mysql -uUSER -pPWD -hDB-HOSTNAME/IPADDRESS -e "delete tags from tags left join tagowners on tags.id=tagowners.tagId where tagowners.tagId is null;"

答案 4 :(得分:0)

如果你在linux服务器上,你可以创建一个cronjob,一个计划任务,通过php可执行文件执行php脚本。创建一个cron任务很简单,通过shell执行'crontab -e',然后将命令添加到文件的底部。

取自http://mkaz.com/ref/unix_cron.html

的cron条目示例
#Run command at 7:00am each weekday [mon-fri]
00 07 * * 1-5 mail_pager.script 'Wake Up'

#Run command on 1st of each month, at 5:30pm
30 17 1 * * pay_rent.script

#Run command at 8:00am,10:00am and 2:00pm every day
00 8,10,14 * * * do_something.script

#Run command every 5 minutes during market hours
*/5 6-13 * * mon-fri get_stock_quote.script

#Run command every 3-hours while awake
0 7-23/3 * * * drink_water.script 

如果你想每天执行一次php脚本......

0 0 * * * /path/to/php.exe myscript.php

请记住,您正在通过CLI执行脚本,因此$_GET / $_POST / $_SERVER超级全局变量将不存在(您可以使用wget解决此问题)

如果您在Windows上,则可以使用Windows任务计划程序来完成相同的操作。