表结构
CREATE TABLE SCOTT.DEV_RH_LANCE
(
  NO NUMBER(1, 0) NOT NULL CONSTRAINT NO CHECK (NO IN('1','2','3','4','5','6')),
  SUM_TIMES NUMBER,
  SUM_O2_CONS NUMBER,
  SUM_BLOW_TIME NUMBER,
  USING_TIME DATE
, CONSTRAINT DEV_RH_LANCE_PK PRIMARY KEY
  (
    NO
  )
)
;
//执行以下语句
insert into scott.DEV_RH_LANCE(NO,SUM_TIMES) values(1,2);
select SUM_TIMES from scott.DEV_RH_LANCE where NO=1;//没有找到数据将SCOTT.DEV_RH_LANCE中CONSTRAINT NO CHECK (NO IN('1','2','3','4','5','6'))删除,select SUM_TIMES from scott.DEV_RH_LANCE where NO=1;就能够找到数据。提问:
怎样能够即加CONSTRAINT又能够查询?

解决方案 »

  1.   

    没你说的问题,是不是你的insert和select不在一个会话里?,你的insert后没有加commit;SQL> CREATE TABLE t
      2  (
      3    NO NUMBER(1, 0) NOT NULL CONSTRAINT NO CHECK (NO IN('1','2','3','4','5','6')),
      4    SUM_TIMES NUMBER,
      5    SUM_O2_CONS NUMBER,
      6    SUM_BLOW_TIME NUMBER,
      7    USING_TIME DATE
      8  , CONSTRAINT DEV_RH_LANCE_PK PRIMARY KEY
      9    (
     10      NO
     11    )
     12  )
     13  ;Table createdSQL> insert into t(NO,SUM_TIMES) values(1,2);1 row insertedSQL> select * from t where no=1;NO  SUM_TIMES SUM_O2_CONS SUM_BLOW_TIME USING_TIME
    -- ---------- ----------- ------------- -----------
     1          2                           SQL> commit;Commit completeSQL> select * from t where no=1;NO  SUM_TIMES SUM_O2_CONS SUM_BLOW_TIME USING_TIME
    -- ---------- ----------- ------------- -----------
     1          2
      

  2.   

    难道是因为我用的是D版,我的数据库是Oracle 10g。
      

  3.   

    用正版Oracle 10g第二版调试结果如下:(难道是10g的bug)SQL> CREATE TABLE SCOTT.DEV_RH_LANCE
      2  (
      3    NO NUMBER(1, 0) NOT NULL CONSTRAINT NO CHECK (NO IN('1','2','3','4','5','6')),
      4    SUM_TIMES NUMBER,
      5    SUM_O2_CONS NUMBER,
      6    SUM_BLOW_TIME NUMBER,
      7    USING_TIME DATE
      8  , CONSTRAINT DEV_RH_LANCE_PK PRIMARY KEY
      9    (
     10      NO
     11    )
     12  )
     13  ;表已创建。SQL> 
    SQL> insert into scott.DEV_RH_LANCE(NO,SUM_TIMES) values(1,2);已创建 1 行。SQL> commit;提交完成。SQL> select SUM_TIMES from scott.DEV_RH_LANCE where NO=1;未选定行SQL> select * from scott.DEV_RH_LANCE;        NO  SUM_TIMES SUM_O2_CONS SUM_BLOW_TIME USING_TIME
    ---------- ---------- ----------- ------------- --------------
             1          2SQL>
      

  4.   

    再问个简单问题,如何在DataWindow中的字段加validation(用窗口的菜单,不用命令)