共計 1338 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章給大家分享的是有關數據庫中如何將按月分區的表改為按天分區的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
一般來說,按月分區的表都是 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
感謝各位的閱讀!關于“數據庫中如何將按月分區的表改為按天分區”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!