5

我在 oracle 中有一张桌子:

CREATE TABLE transaction (
    id INT NOT NULL,
    accountnumber VARCHAR NOT NULL,
    stmtvaluedate DATE NOT NULL,
    ...
)

我想按 stmtvaluedate 列对这个表进行分区。我的目标是在一个月后创建一个新分区。

有什么好的剧本吗?或者我必须创建静态数量的分区?

最好的办法是:如果一个月过去了,将自动创建一个新分区。

谁能给我一个关于如何在每个月之后按日期列对表进行分区的示例?如果自动分区是不可能的,那么我需要一个例子,它从现在开始按日期列创建分区,大约每个月。

谢谢!

4

1 回答 1

17

你想做的事是完全可能的。这应该这样做:

CREATE TABLE transaction (
    id INT NOT NULL,
    accountnumber VARCHAR2(30) NOT NULL,
    stmtvaluedate DATE NOT NULL
)
PARTITION BY RANGE (stmtvaluedate)
INTERVAL (NUMTOYMINTERVAL (1,'MONTH')) 
    ( partition transaction_old values less than (to_date('01-JAN-2000','DD-MON-YYYY') ));
于 2015-11-19T15:51:39.987 回答