【问题标题】:PostgreSQL constraints - ON DELETE CASCADE not being restoredPostgreSQL 约束 - ON DELETE CASCADE 未恢复
【发布时间】:2013-04-19 00:24:23
【问题描述】:

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

【问题讨论】:

    标签: postgresql cascade database-backups


    【解决方案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..);
    

    【讨论】:

    • 谢谢,这就是问题所在,除了删除级联之外,所有约束都已恢复。
    猜你喜欢
    • 2010-09-08
    • 2015-11-07
    • 2013-01-30
    • 2015-01-27
    • 1970-01-01
    • 2012-12-06
    • 2015-02-17
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多