В примере на рисунке для создания индекса первичного ключа в явном виде используется предложение CREATE INDEX
с инструкцией CREATE TABLE
.
Индексам можно присвоить имя во время создания первичного ключа, чтобы оно отличалось от имени ограничения PRIMARY KEY
.
Сведения об индексах можно запросить в представлении словаря данных USER_INDEXES
.
Примечание. Дополнительные сведения о представлении словаря данных USER_INDEXES
содержатся в материалах занятия «Управление объектами с помощью представлений словаря данных».
Следующий пример служит иллюстрацией поведения базы данных в случае, когда имя индекса не задано в явном виде:
CREATE TABLE EMP_UNNAMED_INDEX (employee_id NUMBER(6) PRIMARY KEY , first_name VARCHAR2(20),
|
SELECT INDEX_NAME, TABLE_NAME FROM USER_INDEXES
|
Обратите внимание, что индексу, который создается для столбца PRIMARY KEY
, сервером Oracle присваивается общее имя.
Можно также использовать существующий индекс для столбца PRIMARY KEY
– например, когда ожидается большой объем загрузки данных и необходимо ускорить работу. Возможно, потребуется отключить ограничения во время выполнения загрузки, а затем снова включить их.
В этом случае наличие уникального индекса для первичного ключа по-прежнему будет приводить к проверке данных во время загрузки. По этой причине можно сначала создать неуникальный индекс в столбце, обозначенном как PRIMARY KEY
, а затем создать столбец PRIMARY KEY
и указать, что он должен использовать существующий индекс. Этот процесс иллюстрируется следующими примерами.
Шаг 1. Создание таблицы:
CREATE TABLE NEW_EMP2 (employee_id NUMBER(6), first_name VARCHAR2(20), last_name VARCHAR2(25)
|
Шаг 2. Создание индекса:
CREATE INDEX emp_id_idx2 ON |
Шаг 3. Создание первичного ключа:
ALTER TABLE new_emp2 ADD PRIMARY KEY (employee_id) USING INDEX |
Далее: Выполнение запросов представления USER_IND_COLUMNS