最近迁数据库,眼睛都要看瞎了,有些分区表按天划分,2-3000个分区表,鼠标滚轮滚到冒烟。然后要把按天分区转成按月分区,开始还在分区原来的分区表的完整性,数据记录数。后来搞几张表后熟练了,直接找到最早日期的分区,然后按照每个月1号在excel上创建日期序列,然后将日期减去1,设置单元格式yyyymm,这样就获得按月分区的日期字段,比如P201501,然后将excel两列保存成一个txt,然后写一个bash
cat >table.sql <
create table mytable (
……
)
partition by range(datestr)
(
!
cat partls|while read p d
do
cat >>table.sql <
partition ${p} values less than ('${d}')
tablespace DEFAULT_TBS
pctfree 10
initrans 1
maxtrans 255
storage
{
initial 1M
next 1M
minextents 1
maxextents ulimtited
pctincress 0
),
!
done
cat >>table.sql <
);
--create index
create index ……
……
!
用这个脚本就能轻松的生成大量的分区表,也可以把原来的非分区表改造成按日期分区的分区表。