mysql 自定义事件

DROP EVENT IF EXISTS truncate_chatmsg;//存在就消除此事件,用于修改时直接执行
CREATE EVENT IF NOT EXISTS truncate_chatmsg 
ON SCHEDULE EVERY 1 DAY        //每天执行一次
STARTS '2015-06-25 20:00:00'   //开始时间为25号8点
DO TRUNCATE TABLE t_chatmessage;  //所做的事情,清空表数据

使用事件功能之前先看看mysql是否已经开启此功能,检查方法:

SHOW VARIABLES LIKE 'event_scheduler';

如果现实为on就行了,如果为off,需要手动开启,方法如下:

1、要在mysql.ini中添加event_scheduler=ON,此是防止mysql重启后,事件功能又关闭了

2、执行此语句:SET GLOBAL event_scheduler = ON;

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}



参数详细说明:

DEFINER: 定义事件执行的时候检查权限的用户。

ON SCHEDULE schedule: 定义执行的时间和时间间隔。

ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。

ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。

COMMENT 'comment': 定义事件的注释。










你可能感兴趣的:(mysql 自定义事件)