0

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

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

1 回答 1

0

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

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

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

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

于 2017-07-27T09:19:30.477 回答