此检查约束对我不起作用:
ALTER TABLE tab1
ADD CONSTRAINT CHK1 CHECK
(col1 in ('val1','val2','val3','val4') and (col2='0' or col2 IS NULL))
ENABLE;
我需要的是,如果 col1 包含上述 4 个值中的任何一个,那么 col2 必须为“0”或“NULL”。
最佳答案
假设 col1
可为空:
ALTER TABLE tab1
ADD CONSTRAINT CHK1 CHECK
(col1 not in ('val1','val2','val3','val4') or (col1 is not null and (col2='0' or col2 IS NULL)))
ENABLE;
如果它不可为空,那么您可以取出col1 is not null
,但它不会太重要。
现在的约束意味着:
如果 col1
不在这些值中,那就没问题。
但如果是的话,那么另一面的条件也必须满足。
关于sql - Oracle SQL - 检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65326342/