日期:2014-05-16  浏览次数:20771 次

MYSQL定时执行存储过程

//**MYSQL定时执行存储过程

查看event是否开启: show variables like '%sche%';

将事件计划开启: set global event_scheduler=1;

关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE;

开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE;

简单实例.

创建表 CREATE TABLE test(endtime DATETIME);

创建存储过程test

? ? ?CREATE PROCEDURE test ()

? ? ?BEGIN

? ? ? ? ? update examinfo SET endtime = now() WHERE id = 14;

? ? ?END;

? ? ?创建event e_test

? ? ?CREATE EVENT if not exists e_test

? ? ? ? ? on schedule every 30 second

? ? ? ? ? on completion preserve

? ? ?do call test();

? ? ?每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.

//** MYSQL取一个月前一个月后的时间

?date_add() 增加

?date_sub()减少

?

?month 月份

?minute 分钟

?second 秒

?例如:select DATE_ADD(NOW(),INTERVAL 1 MONTH); //一个月后的时间