ALL_CONSTRAINTS
にクエリを実行できます。 パフォーマンスビュー
インデックスが使用されている制約と、インデックスが適用されるテーブルを確認するには、例:
select owner, constraint_name, constraint_type,
table_name, index_owner, index_name
from all_constraints
where index_name = 'PK_CHARGES';
テーブル名は「CHARGES」、制約名はインデックス名と一致し、制約タイプは「P」であると予想されます。ただし、テーブルを念頭に置いているため、名前が役立つ規則に従っていない可能性があります。テーブルの古いバージョンの名前が変更された可能性があります。これにより、新しい名前に対する制約が残ります(例:CHARGES_BACKUP
または何か)。
テーブルをクリックしてからビューをクリックすると言いました。おそらく、制約/インデックスがオンになっているテーブルを見ていません。または、実際のテーブルの上にあるビューを見ているのかもしれません。 SYS_
についても言及します 同じ列のインデックス-同じテーブルに置くことはできません。複数の同様のテーブルがありますか、それとも複数のスキーマにアクセスできますか?そのインデックスに対しても上記のクエリを実行する必要があります。上記のように、テーブルの古いバージョンが見つかる場合があります。
制約が適用されているテーブルを特定したら、実際に保持する必要があるかどうかを判断する必要があります。保持しない場合は、ALTER TABLE
を使用して制約を削除することで削除できます。 コマンド。