php创建mysql计划任务_MySQL的计划任务创建

实际项目中只想将最近7天的记录保存在MySQL数据库中,使用程序通过SQL指令的方式删除比较麻烦且效率低,用Mysql 提供的事件调度器

实际项目中只想将最近7天的记录保存在MySQL数据库中,使用程序通过SQL指令的方式删除比较麻烦且效率低,,用Mysql 提供的事件调度器(event scheduler)可轻松实现。

具体步骤如下:

1:超级用户方式登陆MySQL console

# mysql -uroot

2:打开event_scheduler(默认是关掉的)

mysql> set global event_scheduler = ON;

3:创建我们的事件(本例中命名为delete_old_record)

mysql> CREATE EVENT delete_old_record

ON SCHEDULE EVERY 1 DAY STARTS NOW()

DO

-- delete the old records of demo_1_table

DELETE FROM demo_1_table WHERE datediff(NOW(),log_timestamp)>=7;

-- delete the old records of puma_2_table

DELETE FROM demo_2_table WHERE datediff(NOW(),log_timestamp)>=7;

-- delete the old records of puma_3_table

DELETE FROM demo_3_table WHERE datediff(NOW(),log_timestamp)>=7;

-- delete the old records of puma_4_table

DELETE FROM demo_4_table WHERE datediff(NOW(),log_timestamp)>=7;

4:启动创建的事件

mysql> ALTER EVENT delete_old_record ENABLE;

这样以后,数据库就会每天执行DO后面的作业,删除各个table中7天之前的记录。

附录:CREATE EVENT的格式如下:

CREATE

[DEFINER = { user | CURRENT_USER }]

EVENT

[IF NOT EXISTS]

event_name

ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE | DISABLE ON SLAVE]

[COMMENT 'comment']

DO event_body;

schedule:

AT timestamp [+ INTERVAL interval] ...

| EVERY interval

[STARTS timestamp [+ INTERVAL interval] ...]

[ENDS timestamp [+ INTERVAL interval] ...]

interval:

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

logo.gif

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值