使用mysql的事件功能几个前提:
一:使用的版本必须是5.1或者以上的,因为5.1以后才支持此功能
二:检查是否开启了事件功能:
SHOW VARIABLES LIKE ‘event_scheduler’;
显示OFF则为关闭(系统默认是关闭的)
打开命令为:
SET GLOBAL event_scheduler =1;
或者
SET GLOBAL event_scheduler = ON;
关闭事件功能的命令为:
SET GLOBAL event_scheduler = 0;
或者
SET GLOBAL event_scheduler = OFF;
下面实现几个简单的实例
实例一:每秒插入一条记录到eventtest1表中
CREATE EVENT event1 ON SCHEDULE EVERY 1SECOND DO INSERT INTO eventtest1 VALUES(NULL,CURRENT_TIMESTAMP);
SELECT * FROM eventtest1;
临时关闭事件
ALTER EVENT event1 DISABLE;
开启事件
ALTER EVENT event1 ENABLE;
修改事件为没5s执行一次
ALTER EVENT event1 ON SCHEDULE EVERY 5SECOND;
删除事件
DROP EVENT event6;
实例二:每天定时清空eventtest1表
CREATE EVENT event2
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE eventtest1;
实例三:2014-12-31 23:59:59清空eventtest1表
CREATE EVENT event3
ON SCHEDULE AT TIMESTAMP ‘2014-12-3123:59:59‘
DO TRUNCATE TABLE eventtest1;
实例四:10天后开始每天清空eventtest1表
CREATE EVENT event4
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 10 DAY
DO TRUNCATE TABLE eventtest1;
实例五:每天清空eventtest1表,2个月后停止执行
CREATE EVENT event5
ON SCHEDULE EVERY 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 2 MONTH
DO TRUNCATE TABLE eventtest1;
实例六:5天后开始每天清空eventtest1表,3个月后停止执行
CREATE EVENT event6
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 3 MONTH
DO TRUNCATE TABLE eventtest1;
注:此次试验做完后,下次再做时如果建立表和事件都能成功,但是表不会增加,一定
要查看下事件功能是不是开启的,如果关机或者其他原因,事件功能会自动关闭的