Postgresql Postgres中约束删除顺序的处理

Postgresql Postgres中约束删除顺序的处理,postgresql,pg-dump,Postgresql,Pg Dump,我正在使用一个名为apgdiff“”的工具来查找2个postgres数据库之间的DDL差异。它解析2个postgres转储,并根据alter查询生成2个转储之间的差异。 该工具实际上并不介意在生成差异时创建或删除外键约束的顺序,即外键约束应在主键之后创建,或在删除主键之前删除。但是,让我好奇的是,他们的源代码中有一行代码,上面说应该先删除所有主键,然后删除所有其他非主键。我们在Postgres中是否有这样的约束,即应该先删除主键,然后删除其余的约束。如果有任何约束,则应该先删除其他约束,因为外键

我正在使用一个名为apgdiff“”的工具来查找2个postgres数据库之间的DDL差异。它解析2个postgres转储,并根据alter查询生成2个转储之间的差异。

该工具实际上并不介意在生成差异时创建或删除外键约束的顺序,即外键约束应在主键之后创建,或在删除主键之前删除。但是,让我好奇的是,他们的源代码中有一行代码,上面说应该先删除所有主键,然后删除所有其他非主键。我们在Postgres中是否有这样的约束,即应该先删除主键,然后删除其余的约束。

如果有任何约束,则应该先删除其他约束,因为外键约束依赖于主键(或唯一)约束。但是,如果在删除约束时使用
CASCADE
关键字,这并不重要


我看不出为什么先删除主键约束会有什么不同。

在POstgres Laurenz的旧版本中,我们有没有这样的约束……我不知道。