SQL冗余非空约束
当我添加一些约束时,例如:SQL冗余非空约束,sql,constraints,Sql,Constraints,当我添加一些约束时,例如: create table Test( IDTest int primary key, Credit int not null constraint Credit check (Credit >= 0) ); 在这种情况下,Credit中的notnull不是多余的吗?因为我添加了一个约束,即Credit必须高于0?否,它不是多余的 如果条件不是FALSE,则检查约束接受一个值,因此无论它是TRUE还是未知 如果在列中允许空值,则NULL>=0将计算为
create table Test(
IDTest int primary key,
Credit int not null constraint Credit check (Credit >= 0)
);
在这种情况下,
Credit
中的notnull
不是多余的吗?因为我添加了一个约束,即Credit
必须高于0?否,它不是多余的
如果条件不是FALSE
,则检查
约束接受一个值,因此无论它是TRUE
还是未知
如果在列中允许空值,则
NULL>=0
将计算为UNKNOWN
,并通过测试。注意:一些(MySQL…)SQL引擎会自动忽略CHECK
约束。谢谢,使所有的意义都是这样的:“R排序:考虑另一种选择:如果要求条件必须是真的,那么每个涉及可空列的约束都必须显式地测试空值,这将是一个很大的噪音和痛苦!