0

我创建了一个实现范围分区的表。该条款是:

    ...partition by range (DAYOFMONTH(day)) 
   (PARTITION p0 VALUES LESS THAN (1),
    PARTITION p1 VALUES LESS THAN (2),
    PARTITION p2 VALUES LESS THAN (3),
    ...
    PARTITION p30 VALUES LESS THAN (31)
    );

现在,我希望将分区条件更改为

   .... partition by range (DAYOFMONTH(day) mod 31)

其余单独的分区定义保持不变。是否可以通过任何 ALTER TABLE 命令执行此操作,或者我必须先删除分区并使用新条件重新创建分区?我对此进行了很多研究,但发现的所有信息都是关于重新组织各个分区。谢谢。

4

1 回答 1

1

你是说跟随对你不起作用?我成功尝试了 5.6.10 版本!

ALTER TABLE table_name 
   PARTITION BY RANGE( DAYOFMONTH(day) mod 31 ) (
   PARTITION p0 VALUES LESS THAN (1),
   PARTITION p1 VALUES LESS THAN (2),
   PARTITION p2 VALUES LESS THAN (3),
   PARTITION p3 VALUES LESS THAN (4),
   ...
   PARTITION p30 VALUES LESS THAN (31)
);
于 2013-07-09T20:16:03.987 回答