1

我正在尝试创建分区但未能成功。这是我的表结构

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
)

你知道如何在不删除主要或更改表结构的情况下创建任何类型的分区。

4

1 回答 1

1

主键必须包括分区中使用的所有列。见这里

这会起作用:

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
)

它通过增加主键来保持你的表结构相同。

于 2011-08-26T19:28:24.867 回答