我在表上设置主键时犯了一个错误,比如在字段“x”上。另一个字段,比如字段“y”,我放置了一个唯一约束,并对该字段设置了一些其他表作为外键引用。
我注意到我的错误并将主键放在字段“x”上并将其放在“y”上。在这一点上,我意识到我可以删除对“y”的唯一约束。但现在我在这样做时遇到错误,告诉我:不能在表 'foo' 上删除约束 'y'_unique_constraint 因为其他对象依赖于它。
我尝试通过执行事务和“设置所有延迟的约束”,但这没有帮助。
如何在不从头构建数据库的情况下消除此限制?据我所知,现在主键在同一个字段上,这个对“y”的唯一约束是多余的。
最佳答案
起初我没有意识到外键引用的是索引而不是字段。因此,在同一字段上创建新的主键并不意味着外键切换到新索引。
我现在使用级联删除了唯一约束并重新添加了所有外键,它们现在使用主键。
关于postgresql - 删除唯一约束postgresql的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22857634/