我在另一台服务器上恢复PostgreSQL数据库架构时遇到了问题。更准确地说,某些表似乎没有与它们在原始数据库中使用的相同的外键约束。例如,ON DELETE CASCADE
子句似乎已从所有约束定义中完全消失。
答案 0 :(得分: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..);