一、建表时进行分区
Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键:
create table if not exists inv_onhand_quantity_test_t
(
STORAGE_ID bigint auto_increment
comment '主键' ,
ITEM_ID int not null
comment '物料ID' ,
ITEM_NUM varchar ( 100 ) null
comment '物料编码' ,
TRAY_ID int null
comment '托盘ID' ,
TRAY_NUM varchar ( 16 ) charset utf8mb4 null
comment '托盘号' ,
LOCATION varchar ( 16 ) charset utf8mb4 null
comment '库位' ,
ONHAND_QUANTITY double null
comment '库存数量' ,
WORKORDER_NUM varchar ( 32 ) charset utf8mb4 null
comment '工单号' ,
TASK_NUM varchar ( 32 ) charset utf8mb4 null
comment '任务号' ,
UOM varchar ( 4 ) charset utf8mb4 null
comment '物料单位' ,
MANAGE_GROUP varchar ( 16 ) charset utf8mb4 null
comment '管理组别' ,
SUBINV_ID int ( 4 ) null
comment '仓库ID' ,
ITEM_LIS varchar ( 100 ) charset utf8mb4 null
comment '物料序列号' ,
ITEM_BAT varchar ( 100 ) charset utf8mb4 null
comment '物料批次号' ,
SOURCE_TYPE int ( 4 ) null
comment '来源类型:' ,
SUPPLIER_ID varchar ( 200 ) default '0' null
comment '供应商ID' ,
SOURCE_NUMBER varchar ( 100 ) null
comment '来源单号' ,
IS_TAKINGSTOCK int ( 2 ) default '0' null
comment '0 未操作 1 盘点计划中' ,
CREATE_TIME datetime default CURRENT_TIMESTAMP not null ,
CREATE_USER varchar ( 16 ) null ,
UPDATE_TIME datetime default CURRENT_TIMESTAMP null ,
UPDATE_USER varchar ( 16 ) null ,
ORGANIZATION_ID int null
comment '库存组织ID' ,
PRIMARY KEY ( ` STORAGE_ID` , ` CREATE_TIME` ) ,
UNIQUE KEY ` id_UNIQUE` ( ` STORAGE_ID` , ` CREATE_TIME` )
)
PARTITION BY RANGE COLUMNS ( CREATE_TIME)
( PARTITION p08 VALUES LESS THAN ( '2019-08-31' )
ENGINE = InnoDB ,
PARTITION p09 VALUES LESS THAN ( '2019-09-30' )
ENGINE = InnoDB ,
PARTITION p10 VALUES LESS THAN ( '2019-10-31' )
ENGINE = InnoDB ) ;
二、建表后进行分区(消耗资源巨大)
ALTER TABLE inv_onhand_quantity_t PARTITION BY RANGE columns ( CREATE_TIME)
(
PARTITION p_6 VALUES LESS THAN ( '2019-06-30' ) ,
PARTITION p_9 VALUES LESS THAN ( '2019-09-30' ) ,
PARTITION p_12 VALUES LESS THAN ( '2019-12-31' ) ) ;
alter TABLE ` inv_onhand_quantity_copy1_t`
add PARTITION (
PARTITION p_max VALUES LESS THAN MAXVALUE
) ;
alter table ` inv_onhand_quantity_copy1_t`
drop PARTITION p_max;