0

我们目前使用的是来自 MySQL 5.1 的 MySQL 5.5。在 5.1 中,您可以通过使用 to_days() 函数来按日期创建分区。但是,似乎在 MySQL 5.5 中,您可以直接使用日期而无需此解决方法

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

4

1 回答 1

0

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

您不能使用 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));
于 2013-06-04T20:27:49.550 回答