Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查约束_Sql_Database_Oracle - Fatal编程技术网

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。 任何帮助都将不胜感激。请尝试:

我一直在努力创建一个由以下内容组成的表

  • 模块(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)。[…]

    所以我建议你更好的用户