0
我想知道是否有任何方法可以檢查列是否有值,如果值爲XXXXX那麼另一列必須在列表中(A,B,C)。 類似:檢查列是否有一定的值,然後用列表限制另一列
CREATE TABLE test (a CHAR(60),b CHAR(60),Check (IF a == 'test' THEN b in ('a','b','c')));
我想知道是否有任何方法可以檢查列是否有值,如果值爲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
。