1、创建存储过程,代码如下:
create procedure create_login_history_table()
begin
set @tbCreate = concat('create table ','login_history_',date_format(now(),'%Y_%m_%d_%h_%i_%s'),"(
id int(11) primary key auto_increment,
uid char(10) not null,
ip char(200) not null)ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='登录信息记录'");
prepare stmt from @tbCreate;
execute stmt;
end;
2、创建定时器(每20秒执行一次),代码如下:
CREATE DEFINER=`root`@`%`
EVENT `Create_TableEvent`
ON SCHEDULE EVERY 20 SECOND STARTS '2020-05-12 00:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
BEGIN
call create_login_history_table();
END;
3、启动定时器和关闭定时器:
ALTER EVENT Create_TableEvent ENABLE;//启动定时器
drop event Create_TableEvent;//删除定时器
4、其中要注意的是,设置定时任务时,首先将event_scheduler设置为1(要在),以开启事件计划功能(要在mysql命令行界面执行该语句)。
set global event_scheduler=1;
select @@event_scheduler;