mysql event表_MySQL event实现定时建表小记

MySQL event实现定时建表小记

每天凌晨一点建一个第二天的表

DELIMITER //

CREATE PROCEDURE test.create_tab_every_day()

BEGIN

DECLARE `@i` VARCHAR(15);

DECLARE `@sqlstr` VARCHAR(2560);

SET `@i` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 DAY),'%Y_%m_%d');

SET @sqlstr = CONCAT(

"CREATE TABLE day_tab_",

`@i`,

"(

`prop` VARCHAR(40)

);"

);

PREPARE stmt FROM @sqlstr;

EXECUTE stmt;

END;

CALL test.create_tab_every_day();

/*****DROP PROCEDURE test.create_tab_every_day;*****/

/*****drop table test.day_tab_2015_09_11;*****/

DELIMITER $$

CREATE EVENT event_create_tab_days

ON SCHEDULE EVERY 1 DAY

STARTS '2015-09-10 01:00:00'

ON  COMPLETION  PRESERVE

ENABLE

DO

BEGIN

CALL test.create_tab_every_day();

END

$$

DELIMITER ;

每月的11号建一张下个月的表

DELIMITER //

CREATE PROCEDURE test.create_tab_every_mon()

BEGIN

DECLARE `@i` VARCHAR(15);

DECLARE `@sqlstr` VARCHAR(2560);

SET `@i` = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH),'%Y_%m');

SET @sqlstr = CONCAT(

"CREATE TABLE mon_tab_",

`@i`,

"(

`prop` VARCHAR(40)

);"

);

PREPARE stmt FROM @sqlstr;

EXECUTE stmt;

END;

CALL test.create_tab_every_mon();

/*****DROP PROCEDURE test.create_tab_every_mon;*****/

/*****DROP TABLE test.mon_tab_2015_10*****/

DELIMITER $$

CREATE EVENT event_create_tab_mons

ON SCHEDULE EVERY 1 MONTH

STARTS '2015-09-11 01:00:00'

ON  COMPLETION  PRESERVE

ENABLE

DO

BEGIN

CALL test.create_tab_every_mon();

END

$$

DELIMITER ;

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值