我希望能够在表格中输入以下值:0,0; 0,1; 1,0 但我想禁用以下值:1,1
我做了以下查询:
CREATE TABLE mytab (a CHAR(1), b CHAR(1), CHECK(a != 1 AND b != 1));
我可以输入0,0但我无法输入1,0。我如何重写这个逻辑语句,以便它符合我的要求?
答案 0 :(得分:3)
检查约束应为:
check (not (a = 1 and b = 1))
或等效地:
check (a <> 1 or b <> 1)
(实际上,在存在NULL
值的情况下,这些并不完全相同。如果允许NULL
值,则第二种可能是您想要的。)
答案 1 :(得分:1)
使用OR
代替AND
:
CHECK(a != 1 OR b != 1))