分区表,如何实现每天为一个分区,删除超过7天的分区

CREATE TABLE quarterly_report_status (report_id INT NOT NULL, report_status VARCHAR(20) NOT NULL,` report_updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )

PARTITION BY RANGE ( UNIX_TIMESTAMP(report_updated) ) (` PARTITION p0 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-03-30 00:00:00’) ), PARTITION p1 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-03-31 00:00:00’) ), PARTITION p2 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-01 00:00:00’) ), PARTITION p3 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-02 00:00:00’) ), PARTITION p4 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-03 00:00:00’) ), PARTITION p5 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-04 00:00:00’) ), PARTITION p6 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-05 00:00:00’) ), PARTITION p7 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-06 00:00:00’) ), PARTITION p8 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-07 00:00:00’) ), PARTITION p9 VALUES LESS THAN ( UNIX_TIMESTAMP(‘2020-04-08 00:00:00’) ), );

如何根据时间删除p0,p1,p2?能否获得分区表的所有分区?

您好,

可以看下官方文档中关于 Rang 分区的描述,是否可以满足需求。


有没有根据类似where语句删除partition的操作,而不是根据指定的partition id进行删除。例如,类似使用ALTER TABLE employees DROP PARTITION where UNIX_TIMESTAMP(report_updated) < UNIX_TIMESTAMP(‘2008-04-01 00:00:00’) 去删除 p0,p1分区。

或者有没有获取分区表所有分区id的查询,例如获取 quarterly_report_status所有分区id p0,p1,…,p9

您好,

目前仅支持根据分区 id 进行分区管理,可以仔细看下官方文档

那能否获取到一个分区表所有的分区id呢?

您好,

show create table tablename; 不知是否满足要求~

直接获取单张表所有 分区 id,目前是没有相关接口的。

好的,谢谢

:call_me_hand::call_me_hand::call_me_hand::call_me_hand:

您好,这个问题解决了吗,可以说一下解决方案吗

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。