PostgreSQL约束 - ON DELETE CASCADE未恢复

时间:2013-04-25 07:48:40

标签: postgresql cascade database-backups

我在另一台服务器上恢复PostgreSQL数据库架构时遇到了问题。更准确地说,某些表似乎没有与它们在原始数据库中使用的相同的外键约束。例如,ON DELETE CASCADE子句似乎已从所有约束定义中完全消失。

1 个答案:

答案 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..);