mysql用存储过程和定时器实现定期在数据库创建表

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;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值