设为首页 加入收藏

TOP

MySQL event实现定时建表小记
2015-11-10 12:16:33 来源: 作者: 【 】 浏览:0
Tags: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 ;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用Shell生成Orabbix自动化配置.. 下一篇Oracle Data Guard LOG_ARCHIVE_D..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: