检查列是否具有特定值,然后通过列表限制另一个
Checking if a column has a certain value, then restrict another by a list
我想知道是否有任何方法可以检查列是否有值,如果值为 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
相同。
我想知道是否有任何方法可以检查列是否有值,如果值为 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
相同。