mysql动态新建以及删除分区表(三)

2014-11-24 11:19:25 · 作者: · 浏览: 3
ta_summarize') and backupflag=1 order by monittime desc limit 1;
19
-- 删除数据记录
20
delete from table_fen_qu WHERE recid = myrecid;
21
-- 删除表分区
22
/*拼接分区表代码段*/
23
set @v_drop_d=CONCAT('ALTER TABLE ',mytablename,' DROP PARTITION ',myfenquname);
24
/*定义预处理语句*/
25
prepare stmt from @v_drop_d;
26
/*执行预处理语句*/
27
execute stmt;
28
/*释放预处理语句*/
29
deallocate prepare stmt;
30
-- 在该表中,查询符合条件的记录数,backupflag=1说明是已备份
31
select count(*) into recoidNum from table_fen_qu where tablename in ('temp_data','no_energy_five_minute_data','energy_five_minute_data','energy_five_minute_data_summarize') and backupflag=1;
32
end while;
33
end del_fq;
第二步:建立事件计划,定时执行事件。
事件如下:
01
-- 打开事件计划
02
SET GLOBAL event_scheduler = ON;
03
/*创建从开始时间每隔1天定时执行*/
04
drop event if exists eachDayEvent;
05
DELIMITER ||
06
create event eachDayEvent
07
on schedule every 1 day starts '2013-05-01 00:00:00'
08
on completion preserve enable
09
do
10
begin
11
-- general_procedure的参数:表名,分区表之间的时间间隔(单位为小时),要新增的分区表个数
12
-- 非能耗5分钟表-间隔6小时-6h/分区表
13
call general_procedure('no_energy_five_minute_data',6,8);
14
-- 原始数据表-间隔6小时-6h/分区表
15
call general_procedure('temp_data',6,8);
16
-- 能耗五分钟-间隔天-24h/分区表
17
call general_procedure('energy_five_minute_data',24,4);
18
-- 能耗五分钟汇总-间隔天-24h/分区表
19
call general_procedure('energy_five_minute_data_summarize',24,4);
20
-- 能耗小时表调用-间隔周-7*24h/分区表
21
call general_procedure('energy_hour_data_summarize',168,4);
22
-- 能耗分类分项5分钟表-间隔周7*24h/分区表
23
call general_procedure('energy_item_five_minute_data',168,4);
24
-- 能耗分类分项小时表-间隔季度-90*24h/分区表
25
call general_procedure('energy_item_hour_data',2160,4);
26
-- 能耗天汇总表-间隔半年-4380h/分区表
27
call general_procedure('energy_day_data_summarize',4380,4);
28
-- 删除已备份的分区表
29
call del_fenqu();
30
end ||
31
DELIMITER ;
32