为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.4企业版
【操作系统】:麒麟V10
【CPU】:X86
【问题描述】*:
postgres 数据库有个功能:取消分区子表继承父表的关系,如sql:
alter table ${subTableName} no inherit ${parent_table};
其中:subTableName为分区表,如person_20250304,parent_table 为主表:person。
查询子表person_20250304的时候不会关联出主表person的数据。但查询主表person的时候会同时关联出子表person_20250304的数据。
在这种情况下pg有个特性是切断子表和主表的关系,如
alter table ${subTableName} no inherit ${parent_table};
我看历史上有个类似的帖子,但没人回复:
https://eco.dameng.com/community/question/f333eae09b837586c02f53594468b0ce
问题: 请问达梦数据库有类似的功能吗?如果有,能否提供个样例sql?谢谢!
没有完全一样的功能。DM的分区表类似Oracle的,和PG不一样,具体的操作也不一样。
想单纯查询子表数据:
SELECT * FROM TP PARTITION(PAR1);
类似的功能是分区置换:
ALTER TABLE PARTITION_T1 EXCHANGE PARTITION PAR1 WITH TABLE PARTITION_T2;
具体参考这里水平分区表操作
达梦的分区表实现形式类似于pg的声明式分区,不需要手动维护这样的继承关系。需要用到这个语句的使用场景是什么呢?如何是想要单纯查询子表的数据,可以直接select xxx from {子表名},如果是类似归档的场景可以用分区交换把单个子分区表用分区交换的形式把数据转移到普通表上