您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

MySQL 定时器EVENT学习

2024/4/18 14:37:25发布5次查看
mysql从5.1开始支持event功能,类oracle的job功能。有了这个功能之后我们就可以让mysql自动的执行数据汇总等功能,不用像以前需要操作的支持了。如linux crontab功能。 创建测试表 create table t ( v varchar(100) not null ) engine innodb default charset
 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
mysql的event和oralce的job还是有点不同的,这点让笔者比较困扰
在进行按月,季,年进行自动调用存储过程 时,为了测试可以 把系统改为年的最后一天,如2010-12-31 23:59:55;
这个oracle的job就会把月,季,年存储过程执行一遍。但mysql改了系统时间了event也没有定时执行。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录