mysql event (用来实现定时任务)。mysql 从 5.1.16 开始拥有的新功能。
下面我写一个简单的示例。
先创建数据库和两个表:
drop database dep;
create database dep;
use dep;
create table aa
(id int AUTO_INCREMENT primary key,
remark varchar(20)
);
create table bb
(id int AUTO_INCREMENT primary key,
remark varchar(20)
);
先往a表中插入数据
insert aa values(null,'aa');
insert aa values(null,'bb');
创建存储过程,其功能是把a表的内容复制到b表中.
drop PROCEDURE if exists aapro;
create PROCEDURE aapro()
begin
insert into bb (remark) select remark from aa;
commit;
end;
创建mysql event, 从 2010 年1 月 14 日 15 点 24 分 59 秒起每1分钟调用一次 procedure aapro 。
drop event if exists aa_event;
create event aa_event
on SCHEDULE
EVERY 1 MINUTE STARTS '2010-01-14 15:24:59'
ON COMPLETION PRESERVE
DO call aapro();
起初我执行上面的 aa_event。b表中一直没有数据,单独运行存储过程显示有数据,
后为查资料才知道没有启动mysql event,
启动语句:set global event_scheduler =1;
在运行aa_event之前运行。
再次查询b表,就有数据了。