更改MySQL范围分区子句

时间:2013-07-09 18:44:27

标签: mysql range partitioning alter

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

    ...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 个答案:

答案 0 :(得分: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)
);