错误1491(HY000):PARTITION函数返回错误的类型

时间:2019-02-20 02:34:06

标签: mysql partitioning

mytable像这样:

 CREATE TABLE `test1` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `project_id` int(11) NOT NULL,
  `md5` varchar(255) NOT NULL,
  `create_time` datetime NOT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`,`project_id`,`md5`),
  KEY `index_id` (`md5`),
 ) ;

我想按md5分区。所以我创建了一个函数:

   alter table test1 partition by HASH(FLOOR(`md5`)) PARTITIONS 5;

但失败了:

    ERROR 1491 (HY000) The PARTITION function returns the wrong type

非常感谢您!

1 个答案:

答案 0 :(得分:0)

FLOOR需要一个数字参数。如果MD5字符串为c51ce410c124a10e0db5e4b97fc2af39,则将其视为0。将近一半的md5被视为零。

HASH分区实际上是无用的。 IT当然不会提供任何性能。