2013-04-25 116 views
1

我在另一臺服務器中恢復PostgreSQL數據庫模式時遇到了問題。更確切地說,有些表似乎沒有與他們曾經在原始數據庫中使用的相關的外鍵約束。例如,ON DELETE CASCADE子句似乎已完全從所有約束定義中蒸發。PostgreSQL約束 - ON DELETE CASCADE不被恢復

回答

1

這可能是因爲轉儲過程沒有備份表定義中的ON DELETE CASCADE子句。

首先,你應該刪除你的表的外鍵約束,然後再上改變他們:

類似以下內容:

ALTER TABLE ONLY *your_table* DROP CONSTRAINT your_constraint; 

之後,隨着像重建約束:

ALTER TABLE ONLY your_table ADD CONSTRAINT your_constraint (...ON DELETE CASCADE, etc..); 
+1

謝謝,這是問題,所有的約束,除了刪除級聯恢復。 – user1755801 2013-04-25 08:05:23