2012-08-08 3 views
1

나는 tbl_rtdata라는 테이블을 가지고있다. 그 테이블에있는 모든 파티션을 삭제하고 아래의 방법으로 새 ​​파티션을 만듭니다.기존의 MySQL 테이블에서 파티셔닝하는 방법은?

ALTER TABLE tbl_rtdata PARTITION BY RANGE (Month(fld_date)) 

SUBPARTITION BY HASH (Day(fld_date)) SUBPARTITIONS 12( 
PARTITION Apr_0 VALUES LESS THAN (2012-05-01), 
PARTITION May_1 VALUES LESS THAN (2012-06-01),  
PARTITION Jun_2 VALUES LESS THAN (2012-07-01), 
PARTITION Jul_3 VALUES LESS THAN (2012-08-01), 
PARTITION Aug_4 VALUES LESS THAN (2012-09-01), 
PARTITION Sep_5 VALUES LESS THAN (2012-10-01), 
PARTITION Oct_6 VALUES LESS THAN (2012-11-01), 
PARTITION Nov_7 VALUES LESS THAN (2012-12-01), 
PARTITION Dec_8 VALUES LESS THAN MAXVALUE); 

하지만 오류 가지고 : 나는 쿼리의 하위 분할을 제거하면 VALUES LESS THAN value must be strictly increasing for each partition.

그것이 형 INT에게 있어야합니다 'Apr_0'파티션에 대한 오류 값 값을 보여줍니다

난에 무엇을해야 이걸 복구 해?

+0

를 작동? – Omesh

답변

0

매뉴얼 나는 매우 간단 답을 발견, 사용 TO_DAYS 사용중인 MySQL의 버전

ALTER TABLE tbl_rtdata PARTITION BY RANGE (Month(fld_date)) 
( 
PARTITION p_Apr VALUES LESS THAN (TO_DAYS('2012-05-01')), 
PARTITION p_May VALUES LESS THAN (TO_DAYS('2012-06-01')), 
PARTITION p_Jun VALUES LESS THAN (TO_DAYS('2012-07-01')), 
PARTITION p_Jul VALUES LESS THAN (TO_DAYS('2012-08-01')), 
PARTITION p_Aug VALUES LESS THAN (TO_DAYS('2012-09-01')), 
PARTITION p_Sep VALUES LESS THAN (TO_DAYS('2012-10-01')), 
PARTITION p_Oct VALUES LESS THAN (TO_DAYS('2012-11-01')), 
PARTITION p_Nov VALUES LESS THAN (TO_DAYS('2012-12-01')), 
PARTITION p_Dec VALUES LESS THAN MAXVALUE); 
+0

의도 한대로 작동합니까? 내가 볼 수 있듯이'Month (fld_date)'는 항상'TO_DAYS ('2012-05-01')' –

+0

보다 작은 값을 반환하기 때문에 모든 값이'p_Apr'에 항상 저장됩니다. 'BY RANGE (TO_DAYS (fld_date))'여야합니다. –

+0

이전 파티션을 삭제하는 경우 자세한 방법은 http://mysql.rjweb.org/doc.php/partitionmaint를 참조하십시오. –

1

나는이 시도가 MySQL < 5.5 에서 지원되지 않는 생각 : here

ALTER TABLE tbl_rtdata PARTITION BY RANGE COLUMNS (fld_date) (
    PARTITION Apr_0 VALUES LESS THAN ('2012-05-01'), 
    PARTITION May_1 VALUES LESS THAN ('2012-06-01'), 
    PARTITION Dec_8 VALUES LESS THAN (MAXVALUE) 
); 
+0

오류 코드 : 1697이 반환됩니다. 'Apr_0'파티션의 VALUES 값에 INT – Dhileepan

+0

시도 게시 게시물이 있어야합니다. – Omesh

관련 문제