【问题标题】:Postgres Drop constraints orderPostgres Drop 约束顺序
【发布时间】:2017-12-01 11:56:32
【问题描述】:

从 postgres 表中删除约束时,如何知道删除约束的最安全顺序。喜欢,
1) 可以先删除外键约束[因为它们必须在主键约束之前被删除]

那么移除约束的顺序可以是任意顺序。比如检查约束、唯一约束、非空值、默认、主键约束。我说的对吗

【问题讨论】:

  • 如果您删除 single 表的约束,则顺序实际上无关紧要。如果您使用CASCADE,那么在从多个表中删除约束时,顺序也无关紧要
  • 我可以知道如果不使用级联将使上述命令无效的情况
  • 其实很高兴知道这些案例,你能回复@a_horse_with_no_name

标签: postgresql


【解决方案1】:

PostgreSQL 表上没有约束依赖于同一张表上的另一个约束,所以这里的顺序无关紧要。

约束之间的唯一依赖是外键对目标表的主键或唯一键的依赖。

因此,您可以先删除所有外键约束,然后再删除所有其他约束,或者您可以使用ALTER TABLE ... DROP CONSTRAINT ... CASCADE,它会自动删除所有依赖约束,然后您根本不必关心顺序。

【讨论】:

  • 这真的很有帮助。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2015-03-06
  • 2021-01-30
  • 2021-09-10
  • 2022-11-19
  • 1970-01-01
  • 2021-08-18
相关资源
最近更新 更多