gpt4 book ai didi

sql-server - 仅当 Microsoft sql server 中的 t1.f3 为空时,如何允许字段 t1.f1 引用 t2.f2?

转载 作者:搜寻专家 更新时间:2023-10-30 23:42:57 25 4
gpt4 key购买 nike

为了简单起见:假设我们有包含这些定义的表:

create table t1 (id int primary key, f1 int references t2(f2), f3 int references t1(id) )

create table t2 (id int primary key, f2 int)

是否可以做一个约束,只允许在 f3 为 null 时设置 f1?这将如何完成?

最佳答案

首先,让我们检查用例并将它们转换为 bool 语句:

  • 如果未设置 f1(即,它为 null),则没有问题,我们不关心 f3。
  • 如果设置了 f1(即,它不是 null),f3 必须是null

这是一个简单的 or 条件 - f1 为 null 或 f3 为 null。一旦我们理解了这一点,添加一个 check 约束就是一件简单的事情:

ALTER TABLE t1 ADD CONSTRAINT t1_chk CHECK (f1 IS NULL OR f3 IS NULL)

关于sql-server - 仅当 Microsoft sql server 中的 t1.f3 为空时,如何允许字段 t1.f1 引用 t2.f2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32832321/

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