Oracle 10g中unique与index的问题 create table test ( x integer, y integer, z integer ); alter table test add constr
Oracle 10g中unique与index的问题
create table test
(
x integer,
y integer,
z integer
);
alter table test add constraint primary key (x); –产生一个约束,并产生一个同名索引
create uni本文来源gao($daima.com搞@代@#码8网^que index index01 on test(x,y);
–create unique index index02 on test(x,y); –不允许完全相同的索引,即使索引名称不同
create unique index index03 on test(y,z);
create unique index index04 on test(z,y); –index04 是与index03互不相同的索引
alter table test add constraint cons01 unique(x,y,z) ; –产生一个约束,并自动产生一个名为cons01 的UNIQUE索引
alter table test add constraint cons01 unique(x,y) ; –产生一个约束,但因与index01 重复(自动产生的索引不区分顺序),因此不能自动产生索引
alter table test add constraint cons01 unique(y,x) ; –产生一个约束,但因与index01 重复,因此不能自动产生索引
–create unique index cons01 on test(x,y); –不能执行,因为索引cons01 已经被约束cons01 自动创建的索引占用
alter table test add constraint cons012 check (x>100);
alter table test add constraint cons013 check (x>100); –check可以内容完全相同
处理办法:
提取所有约束(UCPR)
提取名称不在约束表中的所有索引
本文永久更新链接地址:
,