2016-03-02 38 views
0

如何將FOREIGN KEY (packet_id) REFERENCES girvi_packet(id) DEFERRABLE INITIALLY DEFERRED設置爲NULL?如何在postgreSQL中將FK關係設置爲NULL

如果父母被刪除postgreSQL引發父母失蹤的錯誤我想壓制這種行爲。這個約束是由第三部分工具默認添加的。但是我的用例要求不然。

+0

那你*想要什麼行爲*?級聯,設置NULL? – wildplasser

+0

@wildplasser [這裏](https://github.com/Atomidata/django-audit-log/issues/23)由於這個問題我想壓制這種行爲 –

+0

我想讓孤兒兒 –

回答

0

外鍵的目的是防止孤兒。你能做的唯一的方法是刪除約束

ALTER TABLE ... DROP CONSTRAINT ... 
+0

'egirvidb =#alter表girvi_transactionauditlogentry降約束girvi_transactionauditlog_packet_id_4b31e38d_fk_girvi_packet_id,加約束上刪除設置爲null girvi_t ransactionauditlog_packet_id_4b31e38d_fk_girvi_packet_id外鍵(packet_id)引用girvi_packet(ID);'是的,我改變了表,現在它的工作 –

+0

有沒有辦法動態獲取的所有約束,然後運行alter在他們 ?? –

+0

http://stackoverflow.com/questions/1152260/postgres-sql-to-list-table-foreign-keys –

相關問題