我创建了一个表“TEST”,我试图输入一些数据,但是我收到了一个错误。错误是错误:关系“test”的新行违反了检查约束“test_status_check”DETAIL:失败的行包含(5,2015-07-21,15:00:00,I7,9,NULL,NULL)。 我认为这是因为状态无效。因此,我尝试在测试表中放置null但仍然无法正常工作
Create table test(
clientID CHAR (20),
startDate date,
startTime time,
instructorNO CHAR(20),
centreID CHAR(20),
status CHAR(4) CHECK (status IN ('Fail','Pass')) NULL,
reason VARCHAR(400),
omitted...
)
错误:关系“test”的新行违反了检查约束“test_status_check”DETAIL:失败的行包含(5,2015-07-21,15:00:00,I7,9,NULL,NULL)。
答案 0 :(得分:1)
NULL
部分是不必要的)。
应该注意,如果检查表达式的计算结果为true或空值,则满足检查约束。由于如果任何操作数为null,大多数表达式将计算为空值,因此它们不会阻止受约束列中的空值。要确保列不包含空值,可以使用下一节中描述的非空约束。
所以,别的东西搞砸了。有关原始代码工作的示例,请参阅here。