最近总是在list分区时发生错误,特此总结
首先创建表## 标题 mysql
CREATE TABLE `vw_village_statics` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`year` varchar(50) NOT NULL,
`month` varchar(50) NOT NULL,
`po_code` varchar(255) DEFAULT NULL,
`po_id` varchar(50) DEFAULT NULL,
`po_name` varchar(255) DEFAULT NULL,
`need_sign_num` int(11) DEFAULT NULL,
`sign_num` int(11) DEFAULT NULL,
`leave_num` int(11) DEFAULT NULL,
`lock_num` int(11) DEFAULT NULL,
`add_time` varchar(30) DEFAULT NULL,
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`,`year`,`month`) USING BTREE,
KEY `po_code` (`po_code`(191)),
KEY `year` (`year`),
KEY `month` (`month`)
) ENGINE=InnoDB AUTO_INCREMENT=739954 DEFAULT CHARSET=utf8mb4
已有数据增加分区
ALTER TABLE vw_village_statics PARTITION BY list COLUMNS (year,month)
( PARTITION p201801 VALUES IN ( ('2018','01')));
需要注意的点
1、PRIMARY KEY必须包含需要分区的列名;
2、list分区的列名必须为联合主键或包含在联合主键内;
3、如果是多个列共同分区,list后面跟COLUMNS;
4、多列共同分区时value用括号括起来,与上面的代码呼应;