2013-07-09 70 views
0

我有一个使用范围分区实现的表。该条款是:更改MySQL范围分区子句

...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命令执行此操作,还是必须先删除分区并使用新的条件重新创建分区? 我对此进行了很多研究,但是发现的所有信息都是关于重新组织单个分区。谢谢。

回答

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) 
); 
+0

是的。这样可行。谢谢。 –