对已有数据量大的表(如日志表)创建表分区
step1: 备份原有表
alter table log_user rename to log_user_bak;
step2: 创建时间分区表(与原表相同的表结构)
create table log_user
PARTITION BY RANGE (CREATE_TIME) INTERVAL (numtoyminterval(1, 'month'))
(partition part_t1 values less than(to_date('2018-11-01', 'yyyy-mm-dd')))
as select * from log_user_bak where 1=2;
step3:将时间分区表设置为行可移(此处是为了新增或修改时间时自动将数据移动到对应的时间分区)
alter table log_user enable row movement;
step4:恢复原表数据
insert into log_user select * from log_user_bak;
step5(optional):删除备份表(可选)
drop table log_user_bak;
step6:提交至数据库
commit;
效果如下