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

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

2-27-1478007

Индексам можно присвоить имя во время создания первичного ключа, чтобы оно отличалось от имени ограничения 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));

2-27-2-5611417

     SELECT INDEX_NAME, TABLE_NAME FROM USER_INDEXES

WHERE TABLE_NAME = 'EMP_UNNAMED_INDEX';

2-27-3-1643725

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

Related Posts