我有一个巨大的oracle数据库的转储,因此不可能全部导入它。我想导入一个名为X的特定表。问题是X有外键。如果我只导入X,我将收到以下错误:
imp user/pass@dbName tables=X rows=y ignore=Y
ORA-02291: integrity constraint violated - parent key not found
我已在本地拥有整个数据库(但没有数据),我想导入与X关联的所有表。我怎样才能实现?我安装了plsql。我还需要知道这些表的顺序,以便首先知道要导入的内容。
答案 0 :(得分:3)
您可以在导入之前禁用所有数据库约束,然后重新启用它们。参见:
答案 1 :(得分:1)
几乎没有问题,所以我会逐一回答。
ORA-02291: integrity constraint violated - parent key not found
没有必要去猜测,因为你知道你没有表X的父记录。顺便说一下你可能也想使用标志CONSTRAINTS=N
,因为你已经有了你所说的db。
“我想导入与X关联的所有表格。我怎样才能实现这一目标?”
除了手动查找所有依赖项(或使用数据字典表user_cons_columns
,user_constraints
等进行查找)之外别无选择,并导入这些表。如果你不这样做,可以考虑一下。您将破坏数据完整性。如果仍然希望表X中的数据没有依赖关系,则禁用约束然后导入。但是你不会再次启用你的约束,我不知道你想要对数据损坏做什么。
“我还需要知道这些表的顺序,以便首先知道要导入的内容。”
导入前禁用约束,然后在导入后启用它们。在这种情况下,您不必担心订单。