您好,欢迎访问一九零五行业门户网

mysql event的用法_MySQL

bitscn.com
mysql event的用法 mysql从5.1开始支持event功能,类似oracle的job功能。有了这个功能之后我们就可以让mysql自动的执行数据汇总等功能,不用像以前需要操作系统提供的定时器的支持了。如linux crontab功能。     创建测试表 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; select * from t; 一些例子:     从现在开始每隔九天定时执行 create event event1 on schedule every 9 day starts now() on completion preserve enable do begin call total(); end 每个月的一号凌晨1 点执行 create event event2 on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day), interval 1 month),interval 1 hour) on completion preserve enable do begin call stat(); end     每个季度一号的凌晨2点执行 create event total_season_event on schedule every 1 quarter starts date_add(date_add(date( concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 2 hour) on completion preserve enable do begin call season_stat(); end 每年1月1号凌晨四点执行     create event total_year_event on schedule every 1 year starts date_add(date(concat(year(curdate()) + 1,'-',1,'-',1)),interval 4 hour) on completion preserve enable do begin call year_stat(); end  bitscn.com
其它类似信息

推荐信息