Oracle
 sql >> Base de données >  >> RDS >> Oracle

Application de la clé unique/primaire - suppression de l'index

Vous pouvez interroger ALL_CONSTRAINTS vue des performances pour voir par quelle contrainte l'index est utilisé et à quelle table il s'applique, par exemple :

select owner, constraint_name, constraint_type,
    table_name, index_owner, index_name
from all_constraints
where index_name = 'PK_CHARGES';

Je m'attendrais à ce que le nom de la table soit 'CHARGES', que le nom de la contrainte corresponde au nom de l'index et que le type de contrainte soit 'P'. Mais puisque vous avez une table en tête, peut-être que les noms ne suivent pas une convention utile. Peut-être qu'une ancienne version de la table a été renommée, ce qui laisserait les contraintes par rapport au nouveau nom (par exemple, CHARGES_BACKUP ou quelque chose).

Vous avez dit que vous cliquez sur le tableau, puis sur la vue. Peut-être que vous ne regardez pas la table sur laquelle se trouve la contrainte/l'index ; ou peut-être regardez-vous une vue au-dessus de la table réelle. Vous mentionnez également un SYS_ index sur les mêmes colonnes - qui ne peuvent pas être sur la même table. Avez-vous plusieurs tables similaires ou avez-vous accès à plusieurs schémas ? Vous devez également exécuter la requête ci-dessus pour cet index. Comme mentionné ci-dessus, vous pouvez trouver une ancienne version (ou des versions) de la table.

Une fois que vous avez identifié la table sur laquelle se trouve la contrainte, vous devrez décider si vous devez réellement la conserver, et si ce n'est pas le cas, vous pouvez la supprimer en supprimant la contrainte avec un ALTER TABLE commande.