这是涉及CHECK语句的两部分问题,在我的第一个CHECK中由于某种原因它可以工作,但实际上允许将 null插入到字段中......任何想法如何解决此问题?在我的第二个CHECK中,它很简单并且不起作用。它允许插入任何东西。添加一个CONSTRAINT SQL CHECK问题
ALTER TABLE table_name ADD (CONSTRAINT CK_CON (name IN ('Jon','Bill','Ted','Ron','Jeff')));
ALTER TABLE table_name ADD (CONSTRAINT CK_NAME CHECK(
(name='John') OR (name='Mary') OR
(name='Jane') OR (name= 'Bruce') OR (name= '')));
添加一个NOT NULL约束。 – jarlh
在WHERE子句中,为了匹配,整个谓词必须是“TRUE”。在CHECK约束中,谓词不需要为'FALSE'。在这种情况下,区别在于“NULL”以及SQL具有三值逻辑,即在NULL出现时有时产生“UNKNOWN”的事实。 –