2011-08-26 7 views
1

파티션을 만들려고했으나 성공하지 못했습니다. 여기 MySQL의 테이블 분할

CREATE TABLE `bb2`.`new_table` (

    `id` INT NOT NULL AUTO_INCREMENT , 

    `dt` DATE NOt NULL , 

    PRIMARY KEY (`id`) , 

    UNIQUE INDEX `date_UNIQUE` (`dt`)) 

partition by range (to_days(dt))(
partition p0 values less than (to_days('2011-01-01')), 
partition p1 values less than MAXVALUE 
) 

가 유에게 내가 주를 제거하거나 테이블 구조를 변경하지 않고 파티션의 모든 유형을 만드는 방법을 어떤 생각을 가지고 내 테이블 구조입니다.

감사합니다.

답변

1

기본 키에는 파티션에 사용 된 모든 열이 포함되어야합니다. here을 참조하십시오.

이 작동합니다 : 그것은 당신의 테이블 구조 기본 키를 보강하여 동일한을 유지

CREATE TABLE `test`.`new_table2` (
    `id` INT NOT NULL AUTO_INCREMENT , 
    `dt` DATE NOt NULL , 
    PRIMARY KEY (`id`, `dt`) , <-- updated primary key 
    UNIQUE INDEX `date_UNIQUE` (`dt`)) 
    partition by range (to_days(dt))(
    partition p0 values less than (to_days('2011-01-01')), 
    partition p1 values less than MAXVALUE 
) 

.