Предложение CREATE INDEX с инструкцией CREATE TABLE

В примере на рисунке для создания индекса первичного ключа в явном виде используется предложение CREATE INDEX с инструкцией CREATE TABLE.

Предложение 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),
last_name VARCHAR2(25));
    SELECT INDEX_NAME, TABLE_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = 'EMP_UNNAMED_INDEX';

Обратите внимание, что индексу, который создается для столбца 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
new_emp2(employee_id);

Шаг 3. Создание первичного ключа:

    ALTER TABLE new_emp2 ADD PRIMARY KEY (employee_id) USING INDEX
emp_id_idx2;

Далее: Выполнение запросов представления USER_IND_COLUMNS

Статьи по теме
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)