这是涉及CHECK语句的两部分问题,在我的第一个CHECK中由于某种原因它可以工作,但实际上允许 null插入到字段中...任何想法如何解决这个问题?在我的第二个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= '')));
答案 0 :(得分:3)
至于第一个问题更改列name
到not null
至于第二个问题
尝试这样做
ALTER TABLE table_name ADD (CONSTRAINT CK_NAME CHECK(
(name='John') OR (name='Mary') OR
(name='Jane') OR (name= 'Bruce') )); -- you have to remove this OR (name= '')
答案 1 :(得分:0)
ALTER TABLE table_name ADD(CONSTRAINT CK_CON(名称IN(' Jon',' Bill',' Ted'' Ron', '杰夫')));
ALTER TABLE table_name ADD(CONSTRAINT CK_NAME CHECK( (姓名='约翰')或(姓名='玛丽')或 (姓名='简')或(姓名='布鲁斯')));
可以证明这一点