sql >> Database >  >> RDS >> Oracle

Handhaving van unieke/primaire sleutel - drop index

U kunt de ALL_CONSTRAINTS opvragen prestatieweergave om te zien door welke beperking de index wordt gebruikt en op welke tabel deze van toepassing is, bijvoorbeeld:

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

Ik zou verwachten dat de tabelnaam 'CHARGES' is, de naam van de beperking overeenkomt met de indexnaam en het type beperking 'P'. Maar aangezien u een tabel in gedachten heeft, volgen de namen misschien geen handige conventie. Misschien is een oude versie van de tabel hernoemd, waardoor de beperkingen voor de nieuwe naam zouden blijven bestaan ​​(bijv. CHARGES_BACKUP of zoiets).

Je zei dat je op de tafel klikt en vervolgens op het uitzicht. Misschien kijkt u niet naar de tabel waarop de beperking/index staat; of misschien kijk je naar een uitzicht bovenop de eigenlijke tafel. Je vermeldt ook een SYS_ index op dezelfde kolommen - die niet in dezelfde tabel kunnen staan. Heeft u meerdere vergelijkbare tabellen of toegang tot meerdere schema's? U moet de bovenstaande query ook voor die index uitvoeren. Zoals hierboven vermeld, vindt u mogelijk een oude versie (of versies) van de tabel.

Als je eenmaal hebt vastgesteld voor welke tabel de beperking geldt, moet je beslissen of je deze daadwerkelijk moet behouden, en zo niet, dan kun je deze verwijderen door de beperking te laten vallen met een ALTER TABLE commando.



  1. Een op veel relatie in MyBatis

  2. Hoe de prestaties van MySQL te benchmarken met SysBench

  3. Selecteer top drie waarden in elke groep

  4. Ondersteunt Microsoft OLE DB Provider voor SQL Server TLS 1.2?