Oracle動態創建時間分區,以及Oracle12c中快速創建自增列


1.時間單分區

時間分區可以按照年月日時分秒進行分區,一般按照日或月分區就足夠了,這里按照的是日分區

demo如下

create table APDEMO
(
OID NUMBER(38) generated as identity (start with 1 increment by 1),--主鍵,自增列
REPORTTIME DATE , 
AP_MAC VARCHAR2(64 CHAR) , 
APALIASNAME VARCHAR2(128 CHAR) not null, 
HOTSPOTNAME VARCHAR2(128 CHAR) not null, 
LONGITUDE VARCHAR2(64 CHAR) , 
CITY VARCHAR2(50 CHAR) not null,
constraint pk_APDEMO_OID primary key (OID)
)
partition by range(REPORTTIME) interval (numtodsinterval(1,'day'))
(
partition part_20170101 values less than (to_date('20170101','yyyyMMdd'))   --這里需要加入一個起始日期
);

2. 時間地市組合分區

 

create table ZJ2_BUDSTA
(
P_DAY               DATE          ,                         
CITY                VARCHAR2(100) ,                         
BUILDINGID          VARCHAR2(50)  ,                         
BUILDINGNAME        VARCHAR2(500) 
)
partition by range(p_day) interval(NUMTODSINTERVAL(1,'day'))
subpartition by list(CITY)
subpartition template
(
subpartition zj_570 values('570'),
subpartition zj_571 values('571'),
subpartition zj_572 values('572'),
subpartition zj_573 values('573'),
subpartition zj_574 values('574'),
subpartition zj_575 values('575'),
subpartition zj_576 values('576'),
subpartition zj_577 values('577'),
subpartition zj_578 values('578'),
subpartition zj_579 values('579'),
subpartition zj_580 values('580')
)
(
partition zj_date_20160101 values less than (to_date('2016-01-01','yyyy-MM-dd'))
);

  

 

 分區貌似不能在已有表上創建,只能新建表后將原表數據導入進來,而且初始日期一定要小於數據最小的日期,否則會導致多個日期的數據在同一個分區中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM