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 に答える