使用MySQL 5.5的真实日期分区

时间:2012-12-10 09:12:49

标签: mysql partitioning

我们目前正在使用来自MySQL 5.1的MySQL 5.5。在5.1中,按日期创建分区所能做的就是使用to_days()函数。但是,似乎在MySQL 5.5中,您可以use dates directly without this workaround

本文未提及的是,是否有从解决方法到新方式的方法。我如何从使用to_days()迁移到不再使用to_days()?

1 个答案:

答案 0 :(得分:0)

要更改分区类型,请使用ALTER TABLE ... PARTITION BY ...和新分区的定义。见18.3.1. Management of RANGE and LIST Partitions

您不能使用REORGANIZE PARTITION来更改表的分区类型;也就是说,您不能(例如)将RANGE分区更改为HASH分区,反之亦然。您也无法使用此命令更改分区表达式或列。要完成这些任务中的任何一个而不删除并重新创建表,可以使用ALTER TABLE ... PARTITION BY ....例如:

请按照您引用的示例进行操作,但将CREATE TABLE更改为ALTER TABLE

ALTER TABLE Annual_Data
PARTITION BY RANGE COLUMNS (date_field)
 (
  PARTITION p01 VALUES LESS THAN ('2007-01-01'),
  PARTITION p02 VALUES LESS THAN ('2008-01-01'),
  PARTITION p03 VALUES LESS THAN ('2009-01-01'),
  PARTITION p04 VALUES LESS THAN (MAXVALUE));