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 是什么意思啊?
路过的帮帮忙.
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 是什么意思啊?
路过的帮帮忙.
创建时立即生效,这个参数可以不用指明,因为默认创建约束时是生效;
立即生效的意思!其实写这个只是为了规范而已,因为默认就是validate的方式啊!
disable 设置约束为禁用状态;validate 设置约束为验证状态;默认值
novalidate 设置约束为非验证状态;
ENABLE VALIDATE是我们常用的方式 比如我们建约束之前表中就有数据 他会验证老数据是不是符合约束,新加进来的数据也要验证
ENABLE NOVALIDATE则是不检验老数据,只验证新加进来的数据DISABLE VALIDATE则会取消验证和DROP掉INDEX 这个在数据仓库用得多
DISABLE NOVALIDATE 这个oracle不再理会这个约束