這是涉及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」的事實。 –