添加间隔月分区
add interval monthly partition
我想创建这个 table,在 endTime 列上有一个每月分区。
我的意思是每个月由 oracle 自动添加一个分区。
create table T_CALLSESSION() PARTITON BY RANGE (C_ENDTIME )
INTERVAL(NUMTOYMINTERVAL(1,'month'); (
C_ID NUMBER(34, 0) not null,
C_ENDTIME timestamp not null,
C_STARTTIME timestamp not null,
C_TYPE number(10,0) not null,
F_CREATOR NUMBER(34, 0),
F_MESSAGE_THREAD NUMBER(34, 0),
primary key (C_ID)
);
有效吗?
您的代码中有一些错误。
- Table 名称不应包含括号
()
PARTITION
子句必须在列和约束声明之后。
- 您必须使用
INTERVAL
分区以便自动创建新分区。
- 必须使用一些常量值创建一个分区,然后自动创建其他分区。
使用以下代码:
create table T_CALLSESSION (
C_ID NUMBER(34, 0) not null,
C_ENDTIME timestamp not null,
C_STARTTIME timestamp not null,
C_TYPE number(10,0) not null,
F_CREATOR NUMBER(34, 0),
F_MESSAGE_THREAD NUMBER(34, 0),
primary key (C_ID)
) PARTITION BY RANGE (C_ENDTIME)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION T_CALLSESSION_P1 VALUES LESS THAN (TO_DATE('01-06-2020', 'DD-MM-YYYY'))
);
我想创建这个 table,在 endTime 列上有一个每月分区。 我的意思是每个月由 oracle 自动添加一个分区。
create table T_CALLSESSION() PARTITON BY RANGE (C_ENDTIME )
INTERVAL(NUMTOYMINTERVAL(1,'month'); (
C_ID NUMBER(34, 0) not null,
C_ENDTIME timestamp not null,
C_STARTTIME timestamp not null,
C_TYPE number(10,0) not null,
F_CREATOR NUMBER(34, 0),
F_MESSAGE_THREAD NUMBER(34, 0),
primary key (C_ID)
);
有效吗?
您的代码中有一些错误。
- Table 名称不应包含括号
()
PARTITION
子句必须在列和约束声明之后。- 您必须使用
INTERVAL
分区以便自动创建新分区。 - 必须使用一些常量值创建一个分区,然后自动创建其他分区。
使用以下代码:
create table T_CALLSESSION (
C_ID NUMBER(34, 0) not null,
C_ENDTIME timestamp not null,
C_STARTTIME timestamp not null,
C_TYPE number(10,0) not null,
F_CREATOR NUMBER(34, 0),
F_MESSAGE_THREAD NUMBER(34, 0),
primary key (C_ID)
) PARTITION BY RANGE (C_ENDTIME)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION T_CALLSESSION_P1 VALUES LESS THAN (TO_DATE('01-06-2020', 'DD-MM-YYYY'))
);