【问题标题】:MySQL - trying to reorganize partition and getting errorMySQL - 尝试重新组织分区并出现错误
【发布时间】:2013-09-20 18:23:31
【问题描述】:

希望非常简单,并且可能很明显,但是我的语法有什么问题。我整个上午都在为此苦苦挣扎。

我因此创建了一组分区:

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),使其仅保存 4 月的数据,并将 5 月的数据移动到新的“最后一个”分区中。我的语法是:

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

如果有人能发现错误,我将不胜感激。

【问题讨论】:

  • 在没有评论的情况下尝试:#-->ALL DATA BEFORE
  • 试试不带刻度的`
  • 欢呼,但没有运气。删除注释没有任何区别,删除勾号,只是将错误推回到初始分区名称。

标签: mysql partition


【解决方案1】:

在网上搜索了一个例子后,我最终在我的一本旧书中找到了一个例子:

ALTER TABLE `schemaName`.`tableName` REORGANIZE PARTITION `201304` INTO 
( 
PARTITION `201304` VALUES LESS THAN (TO_DAYS('2013-05-01 00:00:00')), 
PARTITION `201305` VALUES LESS THAN MAXVALUE 
);

【讨论】:

    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多