我有一個數據轉儲,然後我想將它導入到另一個數據庫(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. SQL錯誤外鍵約束
- 2. 外鍵約束錯誤
- 3. 外鍵約束錯誤1005
- 4. MySQL - 外鍵約束錯誤
- 5. 錯誤1215外鍵約束
- 6. TransactionScope中的父子插入導致外鍵約束錯誤
- 7. 外鍵約束 - DB不會導入。 - Magento
- 8. Magento導入外鍵約束失敗
- 9. SQL錯誤:完整性約束違規:外鍵沒有父母
- 10. 爲什麼我沒有得到外鍵約束錯誤?
- 11. (錯誤:150「外鍵約束不正確」)
- 12. MySQL的添加外鍵約束錯誤
- 13. 外鍵約束的錯誤上創建
- 14. 錯誤「無法添加外鍵約束」
- 15. SQL外鍵約束錯誤1025(152)
- 16. MySQL外鍵約束錯誤代碼1215
- 17. 錯誤添加外鍵約束
- 18. 外鍵約束錯誤地形成 - Laravel
- 19. 調試外鍵約束錯誤
- 20. Laravel - 外鍵約束錯誤地形成
- 21. MySQL錯誤代碼1452外鍵約束
- 22. Laravel - 外鍵約束錯誤地形成?
- 23. SQL Server 2008外鍵約束錯誤
- 24. laravel外鍵約束錯誤地形成
- 25. 檢查外鍵約束錯誤,而mysqli_report
- 26. 錯誤::一個外鍵約束失敗
- 27. 參照表沒有外鍵約束
- 28. 外鍵約束
- 29. 外鍵約束
- 30. 外鍵約束
如果(由於某種原因)您不想使用@JustinCave解決方案,則可以在user_constraints表上循環並禁用首先外鍵約束在導入數據後,再次啓用它們。但是如果我是你,我不會這樣做...... – 2012-02-29 16:41:04