我有一个表有两列:RowType(INT)和RefId(INT)。两列的值均为零或更多。
我需要检查一下:
If RowType == 1 Then RefId cannot be = 0
最好的方法是什么?
我看到我可以查看
CREATE TABLE (
...
CONSTRAINT MyCheck CHECK (RowType + RefId <> 1)
要做到这一点,但可能是这种检查更通用的方式?
您可以使用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
,可能会略有修改。