我有一個數據轉儲,然後我想將它導入到另一個數據庫(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