我有一个数据转储,然后我想将它导入到另一个数据库(Oracle 10g)。目标数据库已经有表(无数据)和一些外键约束。我将通过表导入数据以避免约束错误。如果有人知道更简单的方法,请教我? (Oracle的导入工具不具备自动识别表之间关系的功能,是不是?)ORACLE 10g:如何导入没有外键约束错误?
0
A
回答
1
假设您有模式级导出,源模式具有相同的外键约束,并且所有外键约束都是在同一模式的表之间,导入实用程序应自动处理外键约束。您不需要为此做任何事情(当然,当您执行导入时,您将不得不忽略错误,因为它会尝试创建表并获取它们已存在的错误)。
+0
在类似于11g XE的提问者的情况下,我将'imp ignore = Y touser = foo'用于预先存在的模式,并且它扼杀了FK限制。它按字母顺序处理表格,我没有看到它会自动照顾FKs?它似乎要做的就是最终启用它们,但如果它们已经存在,那不会有帮助。 – 2015-02-03 13:10:57
4
您可以禁用的外键第一:
begin
for cnst in (SELECT constraint_name, table_name FROM user_constraints WHERE constraint_type ='R') loop
execute immediate 'alter table '|| cnst.table_name||' disable constraint ' || cnst.constraint_name ;
end loop;
end;
加载数据做同样的,让他们回来后(只需更改alter table命令enable
而不是disable
但这是有风险,因为如果数据不符合您的约束 - 您将遇到问题...
相关问题
- 1. MySQL - 外键约束错误
- 2. 外键约束错误
- 3. 错误1215外键约束
- 4. Magento导入外键约束失败
- 5. 外键约束 - DB不会导入。 - Magento
- 6. 错误添加外键约束
- 7. SQL Server 2008外键约束错误
- 8. 外键约束错误地形成 - Laravel
- 9. laravel外键约束错误地形成
- 10. SQL外键约束错误1025(152)
- 11. Laravel - 外键约束错误地形成
- 12. 外键约束
- 13. 外键约束
- 14. 外键约束
- 15. 更改MySQL表以添加外键约束导致错误
- 16. Linq to sql导致外键约束错误
- 17. 约束外键一个表 - 导致错误
- 18. SQL错误:插入语句与外键约束冲突
- 19. 外键约束 - 写入错误表 - SQL Server 2008
- 20. 插入值时外键约束失败和错误消息
- 21. 如何获得没有外键约束的列表?
- 22. 从外键约束
- 23. 外键约束 - Pentaho
- 24. SqlAlchemy外键约束
- 25. 与外键约束
- 26. SQLite外键约束
- 27. mysql外键约束
- 28. 外键约束SQL
- 29. 错误:错误#1215:无法添加外键约束
- 30. 检查项目没有错误链接 - 这是“外键约束”是什么?
如果(由于某种原因)您不想使用@JustinCave解决方案,则可以在user_constraints表上循环并禁用首先外键约束在导入数据后,再次启用它们。但是如果我是你,我不会这样做...... – 2012-02-29 16:41:04