MySQL - 试图重组分区并出现错误

标签 mysql partition

希望非常简单,而且可能很明显,但我的语法有什么问题。我整个早上都在为这个而苦恼。

我这样创建了一组分区:

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

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

最佳答案

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

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 
);

关于MySQL - 试图重组分区并出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18830785/

相关文章:

mysql - MySQL 8 中的 "EXPLAIN PARTITIONS"

azure - SSAS 仅限于一个分区

vb6 - 如何使用 VB 6 读取硬盘卷序列号?

python - 为什么 Python 的 str.partition 返回分隔符?

mysql - 为整个表的字段指定别名

MySQL CASE EnumInt WHEN Varchar ELSE Int 返回为 BLOB - 如何转换为 Varchar?

php - SELECT 列表不在 GROUP BY 子句中并且包含非聚合列 'explore.ratings.id'

apache-spark - Spark : persist and repartition order

mysql - 使用非唯一值对 MySQL 查询进行排序

mysql - laravel 迁移 SQLSTATE[HY000]