我创建了主分区20170621和24个子分区 20170621_0 .. 20170621_23
现在,我想删除主分区。但是我得到一个错误。
alter table VAL90W02 drop PARTITION `20180621`
#1508-无法删除所有分区,请改用DROP TABLE。
我也不能删除子分区。那么,如何删除分区?
(来自评论)
create table mytable (
id int(11) NOT NULL AUTO_INCREMENT,
...,
x_date datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id, x_date)
) ENGINE = MYISAM
PARTITION BY RANGE (day(x_date))
SUBPARTITION BY HASH (hour(x_date))
( PARTITION 20180621 VALUES LESS THAN (24)
( SUBPARTITION 20180621_0 ENGINE = MyISAM,
SUBPARTITION 20180621_1 ENGINE = MyISAM, ...)
), ...;
答案 0 :(得分:0)
令人讨厌的是,当删除分区表的最后一个分区时,您必须使用
ALTER TABLE VAL90W02 REMOVE PARTITIONING;
相反。
这是MySQL引发的一个误导性错误(我使用的是5.7 Aurora,不确定会影响哪个版本)。
可以说,这是MySQL无法处理ALTER TABLE DROP PARTITION
命令中的极端情况。