一、建表時進行分區
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;