数据库中如何将按月分区的表改为按天分区

这篇文章给大家分享的是有关数据库中如何将按月分区的表改为按天分区的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

为辽宁等地区用户提供了全套网页设计制作服务,及辽宁网站建设行业解决方案。主营业务为网站制作、做网站、辽宁网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

一般来说,按月分区的表都是range分区,下面来介绍将按月分区改为按天分区的方法:

1.range间隔分区的情况


间隔分区无法手工add partition ,会出现如下报错:

ORA-14760 ADD PARTITION is not permitted on Interval partitioned objects 
思路是先改为非间隔(Interval)分区 ,然后手工按天add partition ,并建议再改成按天间隔,详见如下案列:
create table tmp_test_range
(
id number,
name varchar2(30),
int_date date
)
PARTITION BY RANGE(int_date)
interval(NUMTOYMINTERVAL (1,'MONTH'))
(
partition P201511 values less than(to_date('20151201','yyyymmdd')),
partition P201512 values less than(to_date('20160101','yyyymmdd')));


ALTER TABLE tmp_test_range SET INTERVAL ();

alter table tmp_test_range add partition P20160101 values less than(to_date('20160102','yyyymmdd'));

ALTER TABLE tmp_test_range SET INTERVAL (NUMTODSINTERVAL(1,'DAY'));


2.range非间隔分区的情况

思路是删除一些还没有使用的月分区,然后手工按天add partition ,并建议再改成按天间隔


create table tmp_test_range
(
id number,
name varchar2(30),
int_date date
)
PARTITION BY RANGE(int_date)
(
partition P201511 values less than(to_date('20151201','yyyymmdd')),
partition P201512 values less than(to_date('20160101','yyyymmdd')),

partition P201601 values less than(to_date('20160201','yyyymmdd')));

alter table tmp_test_range drop partition P201601;

alter table tmp_test_range add partition P20160101 values less than(to_date('20160102','yyyymmdd')); --新增一个起始分区

ALTER TABLE tmp_test_range SET INTERVAL (NUMTODSINTERVAL(1,'DAY')); 

感谢各位的阅读!关于“数据库中如何将按月分区的表改为按天分区”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网站题目:数据库中如何将按月分区的表改为按天分区
网页地址:http://bzwzjz.com/article/gpdsip.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 重庆网站制作 上市集团网站建设 网站制作 营销型网站建设 成都做网站建设公司 成都网站建设 自适应网站建设 手机网站建设 网站设计 成都企业网站建设 温江网站设计 app网站建设 成都网站建设公司 成都定制网站建设 网站制作公司 成都品牌网站建设 网站建设公司 网站制作 成都网站设计 网站制作 网站建设开发 成都网站建设