oracle 在创建表时按范围先分三个分区,然后根据某字段的值导入数据时自动添加分区,怎么实现呀。
比如:创建表分区createtableMyTest(idnumber,namenvarchar2(100))partitionbyrange(id)(partitionT...
比如:创建表分区
create table MyTest
(
id number,
name nvarchar2(100)
)
partition by range(id)
(
partition T1 values less than (1000) tablespace myTableSpace_1,
partition T2 values less than (2000) tablespace myTableSpace_2,
partition T3 values less than (3000) tablespace myTableSpace_3)
这样的话是创建表后同时根据ID划分成了三个分区;
但是我想要的是:如果3000<ID<40000时会自动创建新的分区。
alter table myTest add partition T4values less than (4000) tablespace myTableSpace_4;
当4000<ID<5000时又会自动创建分区。而不是每次都要自己去新建分区并添加上,这该怎么做呀?
简单点说:就是创建完一个表之后,直接向该表中导入数据,根据ID范围导入到不同的分区表中,如果已存在的分区不够的话,就会根据ID范围自动创建分区。
至于分区表所占用的表空间的创建先不考虑了;
请大神赐教,越详细越好呀,谢谢了 展开
create table MyTest
(
id number,
name nvarchar2(100)
)
partition by range(id)
(
partition T1 values less than (1000) tablespace myTableSpace_1,
partition T2 values less than (2000) tablespace myTableSpace_2,
partition T3 values less than (3000) tablespace myTableSpace_3)
这样的话是创建表后同时根据ID划分成了三个分区;
但是我想要的是:如果3000<ID<40000时会自动创建新的分区。
alter table myTest add partition T4values less than (4000) tablespace myTableSpace_4;
当4000<ID<5000时又会自动创建分区。而不是每次都要自己去新建分区并添加上,这该怎么做呀?
简单点说:就是创建完一个表之后,直接向该表中导入数据,根据ID范围导入到不同的分区表中,如果已存在的分区不够的话,就会根据ID范围自动创建分区。
至于分区表所占用的表空间的创建先不考虑了;
请大神赐教,越详细越好呀,谢谢了 展开
展开全部
分区不能只能手工创建,不支持自动创建
追问
这样的话岂不是很麻烦呀
追答
对啊,只能创建的时候,给多一点分区了。然后给个默认分区,没有对应的就都放在默认分区里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询