2016-08-05 66 views
0

我需要將數據導入PostgreSQL數據庫,但現有導入腳本以錯誤順序執行作業,並且因違反約束錯誤而失敗。PostgreSQL禁用所有數據庫約束條件

是否有可能在PostgreSQL中禁用導入前的所有約束檢查並在需要時啓用它?如果是這樣,你可以請示例或命令如何實現?

+0

您可能需要「延遲」約束。 (請閱讀「臨時禁用,但在提交時檢查」) – joop

+0

請您提供一個模式詳細的答案,它可以如何幫助解決我的問題? – alexanoid

+0

https://www.postgresql.org/docs/9.5/static/sql-set-constraints.html(但它可能是一個好主意,還修復您的scriptt事件的順序) – joop

回答

0

也許你應該向進口工具生產者提出這個問題。

沒有簡單的方法來臨時禁用約束;你必須自己刪除並重新創建它們。看看輸出pg_dump --section=post-data應該有所幫助,因爲它包含了創建所有約束的命令。