oracle11g分区表自增长

相关sql语句

CREATE TABLE CTEST
( ID INTEGER,
  C_DATE DATE)
  PARTITION BY RANGE(C_DATE ) INTERVAL(NUMTOYMINTERVAL(1, 'YEAR')) (
  PARTITION PART_MIN VALUES LESS THAN (TO_DATE('2015-01-01', 'YYYY-MM-DD'))
  );
INSERT INTO CTEST VALUES(1, TO_DATE('2013-11-01', 'YYYY-MM-DD'));
INSERT INTO CTEST VALUES(1, TO_DATE('2014-11-01', 'YYYY-MM-DD'));
INSERT INTO CTEST VALUES(1, TO_DATE('2015-11-01', 'YYYY-MM-DD'));
INSERT INTO CTEST VALUES(1, TO_DATE('2016-11-01', 'YYYY-MM-DD'));
SELECT * FROM CTEST;
        ID C_DATE

         1 01-11-14
         1 01-11-13
         1 01-11-15
         1 01-11-16
SELECT * FROM CTEST PARTITION (PART_MIN);
        ID C_DATE

         1 01-11-14
         1 01-11-13
SELECT TABLE_NAME, PARTITION_NAME FROM USER_TAB_PARTITIONS T WHERE T.TABLE_NAME = 'CTEST'
TABLE_NAME                     PARTITION_NAME
------------------------------ ----------------------------
CTEST                          PART_MIN
CTEST                          SYS_P21
CTEST                          SYS_P22

说明

interval使用之后,就不用手工增加分区,来适应数据的增长。 
根据年月 INTERVAL(NUMTOYMINTERVAL(1,'YEAR')) 
INTERVAL(NUMTOYMINTERVAL(1,'MONTH')) 
根据天 INTERVAL(NUMTODSINTERVAL(1,'DAY'))