【发布时间】: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