
可以是让oracle 忽略就存在表内的重复值,并且新插入的数据遵守唯一约束
*** 作步骤
1检查当前oracle 唯一约束创建的索引的unique的列的值 必须是not unique
2如果是unique这要删除该约束重新建,新建的约束先disable,并且要deferred
3这时候检查oracle 唯一约束创建的索引的unique的列的值你会发现该索引时not unique
4接下来你就可以enable 该约束了
明天天帖出示例,现在没时间
使约束失效:
ALTER TABLE 表名 DISABLE CONSTRANT 约束名;
使约束条件生效:
ALTER TABLE 表名 ENABLE CONSTRANT 约束名;
这个是因为每个表的主键都具有唯一性,也就是说如果之前主键中已经有这个数值了,那么在此插入的时候就会报这个错误,实际上是保护数据的唯一性的一种做法。
举例(字段名是主键):
insert into 表名(字段名) values( 1111);
以上语句正常插入。
commit;
insert into 表名(字段名) values( 1111);
此时就会报违反唯一性约束。
alter table employees add constraint emp_sal_ck2 check (length(sal) =15 or length(sal) =18 )
创建索引时的唯一、主键与创建约束时候的唯一约束和主键约束有什么区别呢?
这里的可能容易产生误解,其实创建主键的结果是一样的,不管是在创建约束时创建还是创建索引时创建,都会创建一个主键约束和对应的一个唯一索引。
创建唯一约束与创建唯一索引有所不同:
创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。
创建唯一索引只会创建一个唯一索引,不会创建Constraint。
也就是说其实唯一约束是通过创建唯一索引来实现的。对于前端开发人员来说这两者有什么区别吗?好像没有。都是不能插入重复的值。在删除时这两者也有一定的区别,删除唯一约束时可以只删除约束而不删除对应的索引,所以对于的列还是必须唯一的,而删除了唯一索引的话就可以插入不唯一的值。
以上就是关于oracle数据库建了唯一约束为什么表中的数据还有重复的全部的内容,包括:oracle数据库建了唯一约束为什么表中的数据还有重复的、让oracle数据库中的约束失效、oracle用impdp导入数据库出ora390001主键违反唯一约束条件怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)