我有一个表有两列:RowType(INT)和RefId(INT)。 两列的值均为零或更多。
我需要检查:
If RowType == 1 Then RefId cannot be = 0
最好的方法是什么?
我看到我可以查看
CREATE TABLE (
...
CONSTRAINT MyCheck CHECK (RowType + RefId <> 1)
要做到这一点,但对于这种检查可能是更通用的方法吗?
答案 0 :(得分:5)
您可以使用check
约束:
alter table t add constraint chk_t_2cols
check (rowtype <> 1 or refid <= 0);
或者,如果您愿意:
alter table t add constraint chk_t_2cols
check (not (rowtype = 1 and refid > 0) );
注意:如果列可以是NULL
,则可能会略有修改。