create table department(
deptid number(9) not null,
depno  char(2)   default 01 not null,
address varchar2(30),
constraint pk_deptid primary key (deptid) validate,
constraint uniq_name unique      (name)   validate,
constraint chk_address check
(address in ('1号楼','2号楼','3号楼')) validate);其中这句
 constraint pk_deptid primary key (dept) validate,validate 是什么意思啊?
路过的帮帮忙.

解决方案 »

  1.   

    validate 是什么意思啊? 
    创建时立即生效,这个参数可以不用指明,因为默认创建约束时是生效;
      

  2.   


    立即生效的意思!其实写这个只是为了规范而已,因为默认就是validate的方式啊!
      

  3.   

    纠正:enable 设置约束为激活状态;默认值
    disable 设置约束为禁用状态;validate 设置约束为验证状态;默认值
    novalidate 设置约束为非验证状态;
      

  4.   

    约束有几种方式
    ENABLE VALIDATE是我们常用的方式 比如我们建约束之前表中就有数据 他会验证老数据是不是符合约束,新加进来的数据也要验证
    ENABLE NOVALIDATE则是不检验老数据,只验证新加进来的数据DISABLE VALIDATE则会取消验证和DROP掉INDEX 这个在数据仓库用得多
    DISABLE NOVALIDATE 这个oracle不再理会这个约束