oracle 10g中unique与index的问题

 

 

create table test

(

  x integer,

  y integer,

  z integer

);

 

alter table test add constraint primary key (x); --产生一个约束,并产生一个同名索引

 

create unique 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)

提取名称不在约束表中的所有索引

 

 

 

 

 

 

 

 

 

 

posted @   秦秋随  阅读(1557)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示