DM8:达梦数据库 - 间隔分区表
- 环境介绍
- 1 按 年 - 间隔分区表
- 2 按 月 - 间隔分区
- 3 按 日 - 间隔分区
- 4 按 数值 - 间隔分区表
- 5 达梦数据库学习使用列表
环境介绍
- 间隔分区表使用说明:
-
- 仅支持一级范围分区创建间隔分区。
-
- 只能有一个分区列,且分区列类型为日期或数值。
-
- 对间隔分区进行 SPLIT,只能在间隔范围内进行操作。
-
- 被 SPLIT/MERGE 的分区,其左侧分区不再进行自动创建。
-
- 不相邻的间隔的分区,不能 MERGE。
-
- 表定义不能包含 MAXVALUE 分区。
-
- 不允许新增分区。
-
- 不能删除起始间隔分区。
-
- 间隔分区表定义语句显示到起始间隔分区为止。
-
- 自动生成的间隔分区,均不包含边界值。
-
- MPP 下不支持间隔分区表。
1 按 年 - 间隔分区表
SELECT NUMTOYMINTERVAL(N,INTERVAL_UNIT);
SELECT SYSDATE+NUMTOYMINTERVAL(1,'YEAR');
CREATE TABLE TYEAR(ID INT,NAME VARCHAR(20),BIR DATE)
PARTITION BY RANGE(BIR)
INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))(
PARTITION P1990 VALUES LESS THAN (TO_DATE('1991-01-01','YYYY-MM-DD')),
PARTITION P1991 VALUES LESS THAN (TO_DATE('1992-01-01','YYYY-MM-DD')));
INSERT INTO TYEAR VALUES(1,'AAAAA','1990-03-01');
COMMIT;
INSERT INTO TYEAR VALUES(2,'BBBBB','1995-03-01');
COMMIT;
2 按 月 - 间隔分区
SELECT SYSDATE+NUMTOYMINTERVAL(1,'MONTH');
CREATE TABLE TMONTH(ID INT,NAME VARCHAR(20),BIR DATE)
PARTITION BY RANGE(BIR)
INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))(
PARTITION P9101 VALUES LESS THAN (TO_DATE('1991-02-01','YYYY-MM-DD')),
PARTITION P9102 VALUES LESS THAN (TO_DATE('1991-03-01','YYYY-MM-DD')));
INSERT INTO TMONTH VALUES(1,'AAAAA','1991-01-01');
COMMIT;
INSERT INTO TMONTH VALUES(2,'BBBBB','1991-05-01');
COMMIT;
3 按 日 - 间隔分区
SELECT NUMTODSINTERVAL(N,INTERVAL_UNIT);
SELECT SYSDATE+NUMTODSINTERVAL(1,'DAY');
SELECT NUMTODSINTERVAL(N,INTERVAL_UNIT);
SELECT SYSDATE+NUMTODSINTERVAL(1,'DAY');
CREATE TABLE TDAY(ID INT,NAME VARCHAR(20),BIR TIMESTAMP)
PARTITION BY RANGE(BIR)
INTERVAL(NUMTODSINTERVAL(1,'DAY'))(
PARTITION P910101 VALUES LESS THAN (TO_DATE('1991-01-02 00:00:00','YYYY-MM-DD HH24:MI:SS')),
PARTITION P910102 VALUES LESS THAN (TO_DATE('1991-01-03 00:00:00','YYYY-MM-DD HH24:MI:SS')));
INSERT INTO TDAY VALUES(1,'AAAAA','1991-01-01 00:00:00');
COMMIT;
INSERT INTO TDAY VALUES(2,'BBBBB','1991-01-05 00:00:00');
COMMIT;
4 按 数值 - 间隔分区表
CREATE TABLE T_R11
(EMPLOYEE_ID INT,
EMPLOYEE_NAME VARCHAR(20),
BIR DATETIME)
PARTITION BY RANGE(EMPLOYEE_ID)
INTERVAL(10)
(PARTITION P1990 VALUES LESS THAN(10));
insert into SYSDBA.T_R11 VALUES(9,'AAA','1990-01-01');
COMMIT;
insert into SYSDBA.T_R11 VALUES(10,'AAA','1990-01-01');
COMMIT;
insert into SYSDBA.T_R11 VALUES(20,'AAA','1990-01-01');
COMMIT;
5 达梦数据库学习使用列表