我们有一个头表,它有一个主键和一个引用头表(外键)的详细信息表。标题表和详细信息表都是按月分区的。这些表包含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: 如果我首先删除分区中的数据然后删除它,我就可以从标头表中删除分区。知道这是如何工作的吗?
答案 0 :(得分:0)
Oracle 11g为此引入了分区引用。你在使用参考分区吗?如果不是,则需要更改分区方案。
答案 1 :(得分:0)
我选择"禁用引用约束,然后删除分区"方法,因为我没有找到任何其他解决方案来解决这个问题。
在此处发布此信息并将其作为答案接受,以便其他人可以帮助其他人搜索同一问题。