Sql 检查约束
我一直在努力创建一个由以下内容组成的表Sql 检查约束,sql,database,oracle,Sql,Database,Oracle,我一直在努力创建一个由以下内容组成的表 模块(ModuleID、ModuleTitle、ModuleReader、Credits、, 课程作业(百分比,举例) ModuleID应该由一个序列生成 ModuleTitle和ModuleReader最多应包含30个字符和 不应为空 学分不应为空,应为10、20或40 课程作业百分比和考试加起来应该是100 我成功地完成了第2、3、5点,但我在第4点上遇到了问题。我不知道如何写一个检查约束,说它必须等于10、20或40。 任何帮助都将不胜感激。请尝试:
CHECK( Credits IS NOT NULL AND Credits IN ( 10,20,40))
CHECK( Credits IS NOT NULL AND Credits IN ( 10,20,40))
NOT NULL条件是冗余的-一列必须为10、20或40,所有这些条件都不为NULL,条件可以简化为:
CHECK( Credits IN ( 10,20,40) )
尝试:
NOT NULL条件是冗余的-一列必须为10、20或40,所有这些条件都不为NULL,条件可以简化为:
CHECK( Credits IN ( 10,20,40) )
首先看起来检查NULL是多余的,但我最近遇到了另一个要求重新检查 […]检查约束允许您指定表中每一行必须满足的条件。为了满足约束,表中的每一行必须使条件为TRUE或unknown(由于null)。[…] 所以我建议你更好的用户
首先看起来检查NULL是多余的,但我最近遇到了另一个要求重新检查 […]检查约束允许您指定表中每一行必须满足的条件。为了满足约束,表中的每一行必须使条件为TRUE或unknown(由于null)。[…] 所以我建议你更好的用户