分享更有价值
被信任是一种快乐

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

文章页正文上

这篇文章给大家分享的是有关数据库中如何将按月分区的表改为按天分区的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一般来说,按月分区的表都是range分区,下面来介绍将按月分区改为按天分区的方法:
1.range间隔分区的情况
间隔分区无法手工add partition ,会出现如下报错:
ORA-14760 ADD PARTITION is not permitted on Interval partitioned objects
思路是先改为非间隔(Interval)分区 ,然后手工按天add partition ,并建议再改成按天间隔,详见如下案列:
create table tmp_test_rang免费主机域名e
(
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(‘20160免费主机域名102′,’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_rangedrop 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’));感谢各位的阅读!关于“数据库中如何将按月分区的表改为按天分区”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

相关推荐: oracle12c如何创建公用用户和本地用户

小编给大家分享一下oracle12c如何创建公用用户和本地用户,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!12c推出了可插拔库,管理用户也分为两种:本地用户和公用用户。本地用户是指…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册