【问题标题】:Cant drop partition from header table无法从头表中删除分区
【发布时间】:2011-08-01 12:46:29
【问题描述】:

我们有一个头表,它有一个主键和一个引用头表(外键)的明细表。表头和明细表都按月分区。这些表包含 5 年的数据,因此当新的一个月到来时,第一个分区的数据将被删除,依此类推。因此,始终只保留 5 年的数据。

我们面临的问题是,在从标题中删除分区时,我们收到以下错误:

ORA-02266: unique/primary keys in table referenced by enabled foreign keys
ORA-06512: at "SCH_TEST.DROP_PARTITION", line 51
ORA-06512: at line 16 (DBD ERROR: OCIStmtExecute)

我们已经从明细表中删除了引用数据,仍然出现上述错误。

解决此错误的一种方法是禁用约束,删除分区,然后启用约束。这个问题有没有其他方法/解决方案。

数据库是 Oracle 11G。

编辑 1: 如果我先删除分区中的数据然后删除它,我可以从头表中删除分区。知道这是如何工作的吗?

【问题讨论】:

  • 看起来您遇到了一些限制。这里有一些工作可能会或可能不会帮助你 - jonathanlewis.wordpress.com/2006/12/10/drop-parent-partition
  • 谢谢斯蒂芬。它不工作。在 11g 中我们不能做到这一点有什么限制吗?
  • 不确定 - 如果您可以发布一些 DDL 来创建一个产生您的问题的测试用例,如果有时间我会玩一玩。

标签: oracle oracle11g partitioning


【解决方案1】:

Oracle 11g 为此引入了参考分区。您是否使用参考分区?如果不是,您需要更改分区方案。

【讨论】:

  • 谢谢史蒂夫。不,我没有使用参考分区
【解决方案2】:

我选择了“禁用引用约束,然后删除分区”方法,因为我没有找到任何其他解决方案。

在此处发布此信息并接受它作为答案,以便它可以帮助搜索相同问题的其他人。

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2012-09-06
    相关资源
    最近更新 更多