首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

各位有没有碰下过有主键,但是数据仍有重复的情况

2012-09-19 
各位有没有碰上过有主键,但是数据仍有重复的情况?我碰上了这种情况,不知道怎么处理.情况是这样的:表里面有

各位有没有碰上过有主键,但是数据仍有重复的情况?
我碰上了这种情况,不知道怎么处理.

情况是这样的:表里面有几个字段,A,B, C, D等

其中A字段是number类型,并且是表的主键字段

当查询时,使用select * from 表 where C = '指定值' 查出来结果,发现有几条记录。

奇怪的是,每条记录字段A值都是一样的。(这些记录的B和C字段值则不同)

但更奇怪的是,取查询出来的一条记录的A字段值,执行另一个查询,select * from 表 where A = '查询出来的值'

结果只返回一条记录(查出来的记录,B,C,D的值都跟之前查出来的不同)

查看执行计划,第一条sql走的是普通索引扫描(C上面建了一个普通索引)
第二条sql走的是唯一索引扫描(A上面建了主键)

查all_indexes的索引状态status两个索引都是valid的
================================================================
不知道各位有没有碰上类似这样的问题,表有主键,但是数据有重复。 用两个逻辑等价的sql查询返回结果不同。

是什么原因造成的? 要怎么验证? 怎么解决? 怎么避免?

[解决办法]

探讨
奇怪的是,每条记录字段A值都是一样的。

[解决办法]
我也觉得不太可能, 主键失效了?
[解决办法]
all_constraints 里面有两个字段 一个是 status 一个是 validated

你看看这个是否是正常。 
有一种叫做关系 启用 ,但不合法

热点排行