检查列是否具有特定值,然后按列表

时间:2017-07-26 22:11:22

标签: sqlite boolean-logic implication

我想知道是否有任何方法可以检查列是否有值,如果值为XXXXX,则另一列必须在(A,B,C)列表中。 类似的东西:

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

1 个答案:

答案 0 :(得分:0)

换句话说,在test行中,b必须位于列表中,而在非test行中,b可以是任何内容。

为了使检查成功,b必须在列表中,或者行不能是test行:

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

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