唯一索引和“隐藏”约束

创建unique index还会隐藏的创建约束条件吗,
create table inf_stat_test as select no,org_id from inf_stat
create unique index inf_stat_index on inf_stat_test(no)
此时inf_stat_test没有inf_stat_index这项约束,而且没有任何关于主键和唯一键的约束。
select * from dba_constraints where constraint_name='INF_STAT_INDE
没有任何数据行,oracle数据字典视图认为不存在此项约束。'
insert into inf_stat_test values('asdf','sdfg')
但是当我连续插入两次同样的no值后,oracle居然违反唯一约束inf_stat_index。但是查看dba_constraints确实是不存在此项约束。
难道oracle会对唯一索引隐藏的创建约束条件吗,不写入dba_constraints中,还是oracle结合index一起来保证约束的完整性。
alter table inf_stat_test disable constraint inf_stat_index
此时禁用约束条件oracle提示无法存在。个人理解此时伴随着此项索引的约束不需要oracle数据字典视图来维护,此项约束是由此唯一索引来引起的,伴随着唯一索引存在而存在消失而消失。
跟oracle的创建唯一约束和主键约束一样,此时也伴随着唯一索引的创建,而此项索引也是由唯一约束和主键约束来管理,伴随着约束的创建而创建,伴随着约束的禁用drop而消失。
不同的是由约束而创建的索引是存在dba_constraints和dba_indexes,而由唯一索引而创建的约束是不存在dba_constraints中的。[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25362835/viewspace-1053222/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25362835/viewspace-1053222/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值