检查语句中的多个字段

时间:2014-10-26 14:47:47

标签: sql oracle11g

我希望能够在表格中输入以下值: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。我如何重写这个逻辑语句,以便它符合我的要求?

2 个答案:

答案 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))