Is Partition BY RANGE不能應用於具有自動遞增主鍵的表嗎? 我在問這是因爲看到了一些(1,2)create table語句的例子,它沒有主鍵定義。也是我創建表語句給我的錯誤:MySQL分區BY RANGE不適用於主鍵?
A PRIMARY KEY must include all columns in the table's partitioning function
這裏是我的發言
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類型的?因爲當我將它設置爲雙倍時出現此錯誤:
The PARTITION function returns the wrong type
謝謝。
所以不可能有雙角度的角度?因爲cast()函數不提供double類型 – andriy
@Andriy相反,如果將'angle'定義爲'DOUBLE',則需要將其轉換爲整型:'PARTITION BY RANGE(CAST(角度已簽署))'。儘管如此,這並不能解決第一個問題,即'angle'需要成爲主鍵的一部分。 – RandomSeed
現在是主鍵的一部分。謝謝 – andriy