6

stackoverflow や他のサイトで同様の質問を調べても、これを簡単に実行できないことは理解しています。

ただし、これを行う必要があり、回避策を講じるつもりです。

と を使用して一意でないインデックスを作成し、古い一意のインデックスを削除しようとしましたonlineparallelしかし、それは言って失敗しますORA-01408: such column list already indexed

一意のインデックスを一意でないインデックスに変換する方法は?

4

2 に答える 2

8

新しいインデックスを作成する前に古いインデックスを削除したくない場合は、次のように、不要な列を追加して新しいインデックスを作成することで、少しごまかすことができます。

次の構成のテーブルを想定します。

create table mytable (id number);

create unique index myunique on mytable (id);

インデックスを非一意に変換するには:

create index temp on mytable (id, 1);

drop index myunique;

create index mynonunique on mytable (id);

drop index temp;

実際には、これがどれほど必要かはわかりません。通常は、アクティビティの少ない期間にインデックスを削除して再作成し、できればアプリケーションを停止します。

于 2012-08-16T01:32:18.987 に答える