Mysql Table Partitioning - PullRequest
       7

Mysql Table Partitioning

1 голос
/ 26 августа 2011

Я пытаюсь создать раздел, но не удалось. Вот моя структура таблицы

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 Ответ

1 голос
/ 26 августа 2011

Первичный ключ должен включать все столбцы, используемые в ваших разделах.См. здесь .

Это будет работать:

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
)

Он сохраняет структуру таблицы неизменной за счет увеличения первичного ключа.

...