我需要按月份自动对表进行分区,每个分区都位于与月份对应的表空间中。我不需要循环赛。我希望每个分区都在它的表空间中。谢谢
muk1a3rh1#
正如我已经说过的,您必须使用循环调度,因为表空间必须在设计时存在。否则,Oracle无法自动创建分区。会是这样的:
CREATE TABLE MY_TABLE ( START_TIME TIMESTAMP(0) NOT NULL, more columns ) PARTITION BY RANGE (START_TIME) INTERVAL (INTERVAL '1' MONTH) STORE IN ( TS_JAN, TS_FEB, TS_MAR, TS_APR, TS_MAY, TS_JUN, TS_JUL, TS_AUG, TS_SEP, TS_OKT, TS_NOV, TS_DEC ) ( PARTITION P_INITIAL VALUES LESS THAN (TIMESTAMP '2021-01-01 00:00:00') TABLESPACE TS_JAN );
只需确保初始分区的时间戳(例如1月1日)与正确的表空间匹配。否则,您必须提前手动创建所有分区和表空间。
1条答案
按热度按时间muk1a3rh1#
正如我已经说过的,您必须使用循环调度,因为表空间必须在设计时存在。否则,Oracle无法自动创建分区。会是这样的:
只需确保初始分区的时间戳(例如1月1日)与正确的表空间匹配。
否则,您必须提前手动创建所有分区和表空间。