> 데이터 베이스 > MySQL 튜토리얼 > MySQL的计划任务创建_MySQL

MySQL的计划任务创建_MySQL

WBOY
풀어 주다: 2016-06-01 13:36:49
원래의
1003명이 탐색했습니다.

bitsCN.com

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}

 

bitsCN.com
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿