MySQL从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了。
创建测试表
CREATE TABLE t ( v VARCHAR(100) NOT NULL) ENGINE INNODB DEFAULT CHARSET=utf8;
创建定时器 调用的存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS e_test $$
CREATE PROCEDURE e_test()
BEGIN
INSERT INTO t VALUES('1');
END $$
DELIMITER ;
要使定时起作用 MySQL的常量GLOBAL event_scheduler必须为on或者是1
查看是否开启定时器
SHOW VARIABLES LIKE '%sche%';
开启定时器 0:off 1:on
SET GLOBAL event_scheduler = 1;
创建事件
--每隔一秒自动调用e_test()存储过程
CREATE EVENT IF NOT EXISTS event_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL e_test();
开启事件
ALTER EVENT event_test ON
COMPLETION PRESERVE ENABLE;
关闭事件
ALTER EVENT event_test ON
COMPLETION PRESERVE DISABLE;
<!--EndFragment-->