当我添加一些约束时,例如:
create table Test(
IDTest int primary key,
Credit int not null constraint Credit check (Credit >= 0)
);
在这种情况下不是
not null
在 Credit
多余的,因为我添加了一个约束 Credit
必须大于0?
最佳答案
不,这不是多余的。
A CHECK
如果条件不是 FALSE
,则约束接受一个值,所以不管是TRUE
或 UNKNOWN
.
如果您的列中允许空值,则 NULL >= 0
将评估为 UNKNOWN
并将通过测试。
关于SQL 冗余 NOT NULL 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554692/