sql >> データベース >  >> RDS >> Oracle

一意/主キーの適用-インデックスの削除

    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を使用して制約を削除することで削除できます。 コマンド。



    1. MSSQLServerで列の変更を検出するための最も効率的な方法

    2. スタースキーマとスノーフレークスキーマ

    3. INSERT INTO Table (etc) SELECT * FROM Table2 中に挿入された各行でトリガーを起動するにはどうすればよいですか?

    4. mysqlで予約されている名前