代码之家  ›  专栏  ›  技术社区  ›  Gage

在不检查现有数据的情况下创建外键

  •  2
  • Gage  · 技术社区  · 16 年前

    这是一个由两部分组成的问题。

    问题1: 我试图在一个表上创建一个外键,在该表中,我需要关闭“在创建或重新启用时检查现有数据”。我知道有一个视觉上的选择,但我正在寻找一种方法来实现它的程序化。有什么办法吗?

    问题2: 我有一个代码表和两个需要引用该代码表的表A和B。我希望从关系表中引用这两个列,但我希望能够使用同一列。我可以让两个外键指向同一列吗?

    1 回复  |  直到 16 年前
        1
  •  10
  •   HLGEM    16 年前

    是的,可以让父表中的同一列引用多个表中的不同列。

    我不建议在创建时关闭检查FK。如果您现在有坏数据,您需要立即修复它。否则,当有人第一次编辑这些记录时,FK检查将失败。

    从网上的书中可以看出为什么使用nocheck是个坏主意:

    如果不想验证新支票 或外键约束 现有数据,与nocheck一起使用。我们做 不建议这样做,除非 罕见病例。新的约束将是 在所有以后的数据更新中评估。 任何约束冲突 当 添加约束可能会导致未来 如果更新行,则更新将失败 不符合的数据 约束。