检查一列是否具有特定值,然后通过列表限制另一列



我想知道是否有任何方法可以检查一列是否有值,如果值是XXXXX,那么另一列必须在(A,B,C(列表中。 像这样:

CREATE TABLE test (a CHAR(60),b CHAR(60),Check (IF a == 'test' THEN b in ('a','b','c')));

换句话说,在test行中,b必须在列表中,而在非test行中,b可以是任何东西。

因此,要使检查成功,b必须在列表中,或者该行不得是test行:

CHECK (a <> 'test' OR b IN ('a', 'b', 'c'))

在数学上,a → b¬a ∨ b相同。

相关内容

  • 没有找到相关文章

最新更新