首页 > 解决方案 > 在Oracle中具有重复行的表上创建唯一索引

问题描述

我有一个表,它在 6 个不同的列上有一个 UNIQUE INDEX。但是,表中有重复项。当我删除索引并尝试重新创建它时,它会抛出错误,指出存在重复值。

有没有一种方法可以让我拥有重复的行并仍然创建唯一索引?

我看到约束有 NOVALIDATE 选项。索引有没有类似的东西。

我猜应该有一种方法,因为表中存在具有有效唯一索引的重复行。

请协助。

标签: sqloracleoracle11gdatabase-indexes

解决方案


如果将索引标记为 UNUSABLE,则可以在表上创建唯一索引,即使它有重复项。这意味着索引将存在但系统无法使用它。为此,请使用类似于

CREATE UNIQUE INDEX UNUSABLE_UNIQUE_IDX_SUCCEEDS
  ON TABLE_WITH_DUPS(ID)
  UNUSABLE

db<>在这里摆弄

在此处创建索引文档


推荐阅读