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

Håndhævelse af unik/primær nøgle - drop index

Du kan forespørge på ALL_CONSTRAINTS ydeevnevisning for at se, hvilken begrænsning indekset bruges af, og hvilken tabel det gælder for, f.eks.:

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

Jeg forventer, at tabelnavnet er 'CHARGES', at begrænsningsnavnet matcher indeksnavnet, og at begrænsningstypen er 'P'. Men da du har en tabel i tankerne, følger navnene måske ikke en nyttig konvention. Måske blev en gammel version af tabellen omdøbt, hvilket ville efterlade begrænsningerne mod det nye navn (f.eks. CHARGES_BACKUP eller noget).

Du sagde, du klikkede på bordet og derefter på visningen. Måske ser du ikke på den tabel, som begrænsningen/indekset er på; eller måske ser du på en visning oven på selve bordet. Du nævner også en SYS_ indeks på de samme kolonner - som ikke kan være på samme tabel. Har du flere lignende tabeller eller adgang til flere skemaer? Du skal også køre ovenstående forespørgsel for det indeks. Som nævnt ovenfor, kan du finde en gammel version (eller versioner) af tabellen.

Når du har identificeret, hvilken tabel begrænsningen er på, skal du beslutte, om du faktisk skal beholde den, og hvis ikke du kan fjerne den ved at droppe begrænsningen med en ALTER TABLE kommando.



  1. PostgreSQL-strengescape-indstillinger

  2. Påvirker Sql JOIN-ordren ydeevnen?

  3. Hvordan giver jeg hver registreret bruger deres egen url ved hjælp af PHP?

  4. Flere array_agg()-kald i en enkelt forespørgsel