当前位置:   article > 正文

解决Oracle创建唯一索引遇到的问题(ORA-01452: 无法 CREATE UNIQUE INDEX; 找到重复的关键字)_could not create unique index

could not create unique index

此问题因数据库已经是有数据的,创建唯一索引的那一列有重复的数据,即数据库中的已存在数据不符合要创建索引的条件,导致创建索引的时候会出现ORA-01452找到重复关键字的错误。

解决:

例 :表中有两个字段 id,year,创建唯一联合索引,出现上面的错误,可通过下面的语句删除重复的记录并在重复记录中只保留最小rowid的记录.

DELETE FROM 表名 A WHERE (A.ID,A.YEAR) IN (SELECT ID,YEAR FROM 表名 GROUP BY ID,YEAR HAVING COUNT(*) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表名 GROUP BY ID,YEAR HAVING COUNT(*)>1);

commit;

执行完上述语句后,再次执行创建唯一索引的语句就不会报错了.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/606142
推荐阅读
相关标签
  

闽ICP备14008679号