gpt4 book ai didi

sql-server - 如何在检查约束中引用其他表?

转载 作者:行者123 更新时间:2023-12-02 23:24:10 26 4
gpt4 key购买 nike

我有一个表,ProductSupportArticles:

ProductSupportArticleID int NOT NULL <primary key>
ParentArticleID int NULL
ProductID int NOT NULL
Title varchar(100) NOT NULL
Content varchar(MAX) NOT NULL

ProductID 是 Products.ID 的外键,ParentArticleID 是同一表 ProductSupportArticles.ProductSupportArticleID 的外键。我有一个检查约束 ProductSupportArticleID != ParentArticleID ,以便文章不能成为其自己的父项。

但是,与特定产品相关的支持文章不应成为与不同产品相关的文章的父项或子项。如何添加检查约束或类似的说法:(ProductID = (SELECT ProductID FROM ProductSupportArticles P WHERE ParentArticleID = P.ProductSupportArticleID))

或者我应该如何以不同的方式实现我的表格?

最佳答案

  1. 对 (ProductSupportArticleID, ProductID) 创建 UNIQUE 约束。
  2. 让 (ParentArticleID, ProductID) 指向 (ProductSupportArticleID, ProductID)

警告:通过 CHECK 约束中包含的 UDF 强制执行业务规则存在多个漏洞。例如,它们可能会针对多行修改给出误报和漏报。而且它们的速度非常慢。

关于sql-server - 如何在检查约束中引用其他表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5372476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com