mysql按日期创建分区

在创建分区表时,mysql报了这样一个错误。

ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function
  • 1

大意是用于做分区表的列必须是主键,或包含于主键中

明白原因后就好处理了,把用于分区的列也加入到主键中,形成复合主键,然后再执行。


1.将用于分区的列添加为复合主键

mysql按日期创建分区_第1张图片



添加复合主键成功后,在用命令创建分区:

ALTER TABLE history PARTITION BY RANGE (TO_DAYS(tal_time))
(
PARTITION p_20180101 VALUES LESS THAN (TO_DAYS('2018-01-01')),
PARTITION p_20180201 VALUES LESS THAN (TO_DAYS('2018-02-01')),
PARTITION p_20180301 VALUES LESS THAN (TO_DAYS('2018-03-01')),
PARTITION p_20180401 VALUES LESS THAN (TO_DAYS('2018-04-01')),
PARTITION p_max VALUES LESS THAN MAXVALUE );



你可能感兴趣的:(数据库)