是否不能对具有自动递增主键的表应用分区范围?我之所以这样问是因为看到了一些(1,2)创建表语句的例子,这些语句没有主键定义。我的create语句也给出了错误:
主键必须包括表的分区函数中的所有列
这是我的声明
CREATE TABLE `tbl_point` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cord_x` double DEFAULT NULL,
`cord_y` double DEFAULT NULL,
`angle` int DEFAULT NULL,
PRIMARY KEY (`id`)
)
PARTITION BY RANGE (angle) (
PARTITION p0 VALUES LESS THAN (91),
PARTITION p1 VALUES LESS THAN (181),
PARTITION p2 VALUES LESS THAN (271),
PARTITION p3 VALUES LESS THAN (361)
) 还有一个问题:角柱可以是双型的吗?因为当我将其设置为double时,就会出现这个错误:
分区函数返回错误的类型。
谢谢。
发布于 2012-11-05 15:38:13
第一个错误消息相当明确:
主键必须包括表的分区函数中的所有列
您必须按主键进行分区,或者在主键中包括angle。
我想你不想要后者,所以前者是解决办法。
至于第二个错误:
分区函数返回错误的类型。
实际上,分区函数(此处,"angle“是所谓的”函数“,将其视为标识函数)必须返回整数,如声明的在手册中。
分区键必须是整数列或解析为整数的表达式。
https://stackoverflow.com/questions/13235221
复制相似问题