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

来源:互联网 发布:数组长度是什么 编辑:程序博客网 时间:2024/05/20 11:50

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

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

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

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

CREATE TABLE `f_res` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `eid` int(10) unsigned NOT NULL DEFAULT '0',  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  PRIMARY KEY (`id`,`eid`),  KEY `idx_eid` (`eid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 partition by hash(eid) partitions 10;

这样就可以执行成功了。

注意:在做分区表时,选择分区的依据字段时要谨慎,需要仔细斟酌这个字段拿来做为分区依据是否合适,这个字段加入到主键中做为复合主键是否适合。

阅读全文
0 0
原创粉丝点击