Oracle
 sql >> Database >  >> RDS >> Oracle

Applicazione della chiave univoca/primaria - indice di rilascio

Puoi interrogare ALL_CONSTRAINTS visualizzazione delle prestazioni per vedere da quale vincolo viene utilizzato l'indice e a quale tabella si applica, ad esempio:

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

Mi aspetto che il nome della tabella sia "CHARGES", che il nome del vincolo corrisponda al nome dell'indice e che il tipo di vincolo sia "P". Ma dal momento che hai in mente una tabella, forse i nomi non seguono una convenzione utile. Forse una vecchia versione della tabella è stata rinominata, il che lascerebbe i vincoli rispetto al nuovo nome (ad es. CHARGES_BACKUP o qualcosa del genere).

Hai detto di fare clic sul tavolo, quindi sulla vista. Forse non stai guardando la tabella su cui si trova il vincolo/indice; o forse stai guardando una vista in cima al tavolo vero e proprio. Menzioni anche un SYS_ index sulle stesse colonne, che non possono trovarsi sulla stessa tabella. Hai più tabelle simili o accedi a più schemi? Devi eseguire anche la query precedente per quell'indice. Come accennato in precedenza, potresti trovare una vecchia versione (o versioni) della tabella.

Una volta identificata la tabella su cui si trova il vincolo, dovrai decidere se dovresti effettivamente mantenerlo e, in caso contrario, puoi rimuoverlo rilasciando il vincolo con un ALTER TABLE comando.