我正在使用名为apgdiff' https://www.apgdiff.com/'的工具。用于查找2个postgres数据库之间的DDL差异。它解析2个postgres转储,并根据alter queries生成2个转储之间的差异 该工具实际上并不介意在生成diff时创建或删除外键约束的顺序。即,应在主键之后创建外键约束,或者在删除主键之前删除外键约束。但是,令我好奇的是它们的源代码中的一行代码,它表示应首先删除所有主键,然后删除所有其他非主键。我们在Postgres中是否有任何此类约束,应首先删除主键,然后删除其余约束。
答案 0 :(得分:1)
如果有的话,应首先删除其他约束,因为外键约束依赖于主键(或唯一)约束。但是,如果在删除约束时使用CASCADE
关键字,则无关紧要。
我看不出为什么首先丢弃主键约束会产生影响的原因。