希望非常简单,并且可能很明显,但是我的语法有什么问题。我整个上午都在为此苦苦挣扎。
我因此创建了一组分区:
ALTER TABLE `schemaName`.`tableName`
PARTITION BY RANGE (TO_DAYS(`Created`)) (
PARTITION `early` VALUES LESS THAN (TO_DAYS('2013-01-01 00:00:00')),
PARTITION `201301` VALUES LESS THAN (TO_DAYS('2013-02-01 00:00:00')),
PARTITION `201302` VALUES LESS THAN (TO_DAYS('2013-03-01 00:00:00')),
PARTITION `201303` VALUES LESS THAN (TO_DAYS('2013-04-01 00:00:00')),
PARTITION `201304` VALUES LESS THAN MAXVALUE
);
到目前为止一切顺利,最后一个分区现在保存 4 月 1 日之后的任何数据(例如 4 月和 5 月)。
现在我想重新组织那个分区(201304),让它只保存四月的数据,五月的数据被移动到一个新的“最后一个”分区中。我的语法是:
ALTER TABLE `schemaName`.`tableName` REORGANIZE PARTITION `201304` INTO
(
`201304` VALUES LESS THAN (TO_DAYS('2013-05-01 00:00:00')),
`201305` VALUES LESS THAN MAXVALUE
);
但我收到一个错误,表明问题出在第一个定义上(201304`VALUES LESS ...)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`201304` VALUES LESS THAN (TO_DAYS('2013-05-01 00:00:00')),
#-->ALL DATA BEFORE ' at line 3
如果有人能发现错误,我将不胜感激。