Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Онлайн проверка на синтаксиса на SQL, съответстваща на множество бази данни

  2. Как да създадете чужд ключ в Oracle SQL Developer?

  3. Различно подреждане по подразбиране между ORACLE и PostgreSQL

  4. Използване на колона Oracle XMLType в хибернация

  5. Как да обърнете низ в Oracle (11g) SQL, без да използвате функцията REVERSE().