添加CONSTRAINT的SQL CHECK问题

时间:2015-10-19 12:10:05

标签: sql database oracle constraints

这是涉及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= '')));

2 个答案:

答案 0 :(得分:3)

至于第一个问题更改列namenot 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(          (姓名='约翰')或(姓名='玛丽')或           (姓名='简')或(姓名='布鲁斯')));

可以证明这一点