MySQL 8-向按字段值分区的表添加默认分区

问题描述 投票:0回答:1

我有一个按 KPI 字段值分区的表。有些 kpi 行数较多,有些则行数较少。按 KPI 名称(字符串)分区可保持良好的查询性能。

数据源偶尔会引入一个新的 KpI,这会破坏加载程序。包含新 kpi 值的上传文件将会失败。

我想添加一个默认分区来满足这些条件。

四处搜索后我发现并尝试了这个命令

alter table X 添加分区(分区 pDefault 值在 (DEFAULT) 中);

MySQL工作台不喜欢这个命令突出显示倒数第二个‘)’,说它在这个位置无效,需要‘(’。

我浏览了MySQL帮助索引并用谷歌搜索了一个小时,但找不到这个有什么问题或其他方法来做我想做的事情。

想法?

mysql partitioning
1个回答
0
投票

使用 LIST 分区时必须列出显式值。您无法为未列出的值创建“默认”或“包罗万象”分区。

这已记录在案:

https://dev.mysql.com/doc/refman/8.0/en/partitioning-list.html 说:

RANGE
分区的情况不同,不存在诸如
MAXVALUE
之类的“包罗万象”;分区表达式的所有预期值都应包含在
PARTITION ... VALUES IN (...)
子句中。包含不匹配的分区列值的
INSERT
语句失败并出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.