postgresql - 删除唯一约束postgresql的问题

标签 postgresql foreign-keys unique-constraint

我在表上设置主键时犯了一个错误,比如在字段“x”上。另一个字段,比如字段“y”,我放置了一个唯一约束,并对该字段设置了一些其他表作为外键引用。

我注意到我的错误并将主键放在字段“x”上并将其放在“y”上。在这一点上,我意识到我可以删除对“y”的唯一约束。但现在我在这样做时遇到错误,告诉我:不能在表 'foo' 上删除约束 'y'_unique_constraint 因为其他对象依赖于它。

我尝试通过执行事务和“设置所有延迟的约束”,但这没有帮助。

如何在不从头构建数据库的情况下消除此限制?据我所知,现在主键在同一个字段上,这个对“y”的唯一约束是多余的。

最佳答案

起初我没有意识到外键引用的是索引而不是字段。因此,在同一字段上创建新的主键并不意味着外键切换到新索引。

我现在使用级联删除了唯一约束并重新添加了所有外键,它们现在使用主键。

关于postgresql - 删除唯一约束postgresql的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22857634/

相关文章:

Spring Data Neo4j -repository.save 和 @Indexed(unique=true)

database - 使用外键进行适当的数据库设计

mysql - 在 "Column Name"上创建外键时出错(检查数据类型)?

mysql - 流氓外键

mysql - MySQL中特定数据库约束的解决方案

mysql - 将新列添加到现有的复合唯一键

java - 我可以在 Maven 构建中使用 PostgreSQL 吗?

postgresql - 在 Postgresql 中锁定事务(一系列选择和更新)

postgresql - 亚马逊 RDS : Thousands of PostGIS debugging messages appearing in my logs

MySql 内存引擎不检查更新外键?