FirebirdSQL logo
 TABLEVIEW 

CREATE INDEX

Назначение

Создание индекса для таблицы.

Доступно в

DSQL, ESQL.

CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]]
INDEX indexname ON tablename
{(<column_list>) | COMPUTED [BY] (<value_expression>)}
[WHERE <search_condition>]

<column_list> ::= col [, col ...]
Table 1. Параметры оператора CREATE INDEX
Параметр Описание

indexname

Имя индекса.Может содержать до 63 символов.

tablename

Имя таблицы, для которой строится индекс.

col

Столбец таблицы.В качестве столбцов не могут быть использованы поля типа BLOB, ARRAY и вычисляемые поля.

value_expression

Выражение, содержащее столбцы таблицы. Значение этого выражения будут ключами индекса.

search_condition

Условие поиска, содержащее столбцы таблицы. Используется для определения подмножества записей таблицы, которые будут проиндексированы.

Оператор CREATE INDEX создаёт индекс для таблицы, который может быть использован для ускорения поиска, сортировки и/или группирования.Кроме того, индекс может быть использован при определении ограничений, таких как первичный ключ, внешний ключ или ограничениях уникальности.Индекс может быть построен на столбцах любого типа кроме BLOB и массивов.Имя индекса должно быть уникальным среди всех имён индексов.

Note
Индексы в ключах

При добавлении ограничений первичного ключа, внешнего ключа или ограничения уникальности будет неявно создан одноименный индекс.Так, например, при выполнении следующего оператора будет неявно создан индекс PK_COUNTRY.

ALTER TABLE COUNTRY
ADD CONSTRAINT PK_COUNTRY PRIMARY KEY (ID);

Уникальные индексы

Если при создании индекса указано ключевое слово UNIQUE, то индекс гарантирует уникальность значений ключей.Такой индекс называется уникальным.Уникальный индекс не является ограничением уникальности.

Уникальные индексы не могут содержать дубликаты значений ключей (или дубликаты комбинаций значений ключей в случае составного, многоколоночного или многосегментного индекса). Дубликаты значения NULL допускаются в соответствии со стандартом SQL-99, в том числе и в многосегментном индексе.