【问题标题】:How to create subpartition for Reference-Partitioned Tables如何为引用分区表创建子分区
【发布时间】:2017-11-22 14:28:26
【问题描述】:

考虑以下引用分区表的场景。表T_PARTNER_CUSTOMER 从表T_PARTNER_CONFIG 借用分区part1part2

CREATE TABLE T_PARTNER_CONFIG (
  ID                   NUMBER(38)                 NOT NULL,
  SECURITY_CONTEXT_ID  NUMBER(38)                 NOT NULL
)
PARTITION BY LIST(SECURITY_CONTEXT_ID)
(PARTITION part1 VALUES (0, 1, 2),
 PARTITION part2 VALUES (4, 5, 6));


CREATE TABLE T_PARTNER_CUSTOMER (
  ID                 NUMBER(38)              NOT NULL,
  PARTNER_CONFIG_ID  NUMBER(38)              NOT NULL
  CUSTOMER_NUMBER    VARCHAR2(10)            NOT NULL,
  CONSTRAINT FK_PC_PARTNER_CONFIG
      FOREIGN KEY(PARTNER_CONFIG_ID) REFERENCES T_PARTNER_CONFIG (id)  
)
PARTITION BY REFERENCE(FK_PC_PARTNER_CONFIG);

现在,如果我们要为表T_PARTNER_CUSTOMER 创建进一步的子分区,以便将分区part1part2 进一步细分为表T_PARTNER_CUSTOMER。我尝试了下面的方法,但它不起作用。我使用的是 Oracle 11g 企业版。

CREATE TABLE T_PARTNER_CUSTOMER (
  ID                 NUMBER(38)              NOT NULL,
  PARTNER_CONFIG_ID  NUMBER(38)              NOT NULL
  CUSTOMER_NUMBER    VARCHAR2(10)            NOT NULL,
  CONSTRAINT FK_PC_PARTNER_CONFIG
      FOREIGN KEY(PARTNER_CONFIG_ID) REFERENCES T_PARTNER_CONFIG (id)  
)
PARTITION BY REFERENCE(FK_PC_PARTNER_CONFIG)
SUBPARTITION BY HASH (CUSTOMER_NUMBER) SUBPARTITIONS 8;

【问题讨论】:

    标签: oracle oracle11g database-partitioning


    【解决方案1】:

    似乎不可能,见documentation

    与其他分区类型不同,没有可用的“SUBPARTITON”子句,例如列表:

    【讨论】:

    • 你说得对,好像没有复合引用分区。在这种情况下,有什么替代解决方案? T_PARTNER_CONFIG 的列表分区和T_PARTNER_CUSTOMER 的列表哈希分区。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2013-01-12
    • 2016-06-07
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多