【发布时间】:2013-04-19 00:24:23
【问题描述】:
我在另一台服务器上恢复 PostgreSQL 数据库架构时遇到了问题。更准确地说,一些表似乎没有与它们在原始数据库中使用的相同的外键约束。例如,ON DELETE CASCADE 子句似乎已从所有约束定义中完全消失。
【问题讨论】:
标签: postgresql cascade database-backups
我在另一台服务器上恢复 PostgreSQL 数据库架构时遇到了问题。更准确地说,一些表似乎没有与它们在原始数据库中使用的相同的外键约束。例如,ON DELETE CASCADE 子句似乎已从所有约束定义中完全消失。
【问题讨论】:
标签: postgresql cascade database-backups
这可能是因为转储过程没有备份表定义中的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..);
【讨论】: