我工作的數據庫遷移程序,我想一個數據庫遷移到另一個數據庫whoose已經創建的表。更具體地說,我有兩個數據庫幾乎相同的表,一個是滿的,另一個是空的。我的問題是遷移表值是按字母順序進行的。有些表具有外鍵,如果這些表是從外鍵表中按字母順序排列的,那麼我不能輸入值。有什麼辦法可以禁用java或postgresql的外鍵檢查。任何幫助都會很棒。數據庫插入失敗的原因爲外鍵約束
2
A
回答
2
如果我是正確的,有沒有可能在PostgreSQL上禁用FK。正如@mcfinnigan所說,你可以在開始插入之前刪除fk,或者你可以用DEFERRABLE鍵重新創建一個限制。請參閱postgresql CREATE TABLE documentation.
DEFFERABLE手段,FK將不檢查,直到完成交易。
2
參照完整性是一個數據庫屬性,而不是JDBC屬性 - 你需要運行您導入之前顯式刪除或禁用對數據庫的FK約束,然後重新啓用它們之後。
這可能是一個更好的主意,以確定您的數據的層次結構和插入數據開始與獨立的記錄,然後再插入過程中的相關記錄鏈接到這些。
+0
感謝。我會嘗試第一個。其次可能如此複雜。 – mbaydar 2012-04-04 10:01:35
相關問題
- 1. 使用phpMyAdmin複製數據庫失敗,因爲外鍵約束
- 2. 插入外鍵約束失敗
- 3. 外鍵約束消失的原因
- 4. 插入數據庫約束失敗
- 5. 導入數據庫時導致外鍵約束失敗,導出實體失敗
- 6. 外鍵約束失敗
- 7. 外鍵約束與失敗
- 8. 外鍵約束失敗
- 9. 外鍵約束失敗(MySQL)
- 10. 外鍵約束失敗
- 11. Magento導入外鍵約束失敗
- 12. 插入數據與外鍵約束
- 13. 延誤的原因是外鍵約束
- 14. 爲什麼外鍵約束失敗?
- 15. 數據庫外鍵約束
- 16. 休眠@Version導致數據庫外鍵約束失敗
- 17. SQL約束插入失敗
- 18. 確定哪些多行插入的值失敗外鍵約束
- 19. 插入約束失敗nFOREIGN KEY約束失敗儘管播種數據
- 20. 不能將值插入表,外鍵約束不斷失敗
- 21. 外鍵約束失敗,並在MySQL中插入選擇
- 22. 插入在相同外鍵結果多行「約束失敗」
- 23. 插入值時外鍵約束失敗和錯誤消息
- 24. MySQL的外鍵約束失敗
- 25. Laravel MySQL的外鍵約束失敗
- 26. sqlite3的「外鍵約束失敗」
- 27. 插入失敗:無法添加或更新子行:外鍵約束失敗
- 28. Android的Sqlite數據庫 - 約束失敗
- 29. 外鍵存在時爲什麼'外鍵約束失敗'?
- 30. 更改表,但外鍵約束失敗
是否有更新聲明可以設置表可推遲? – mbaydar 2012-04-04 10:12:31
您不能修改表上的約束。只有你可以添加或刪除alter table語句。 ALTER TABLE ADD XXX約束fk_xxx [...]或ALTER TABLE XXX DROP約束fk_xxx。您必須使用DEFFERABLE鍵來限制重新定義表格。然後,如果使用DEFFERABLE鍵創建約束,則應該調用「SET CONSTRAINTS DEFERRED」。 – Aykut 2012-04-04 10:18:01