CREATE INDEX

Содержание раздела
  1. Связанные запросы
  2. Синтаксис
    1. Ключевое слово DATASOURCE_TYPE
  3. Варианты ответа
  4. Примеры
    1. Создание индекса во всех датасорсах
    2. Создание индекса в указанном датасорсе
    3. Создание индекса с указанием метода
    4. Создание индекса для текстового поиска

Поддерживается в версиях:  6.12 / 6.11 / 6.10 / 6.9 / 6.8.

Запрос создает индекс для физической таблицы в указанных или всех датасорсах.

Запрос доступен для любых таблиц в СУБД ADB и ADP.

Синтаксис

CREATE [UNIQUE] INDEX index_name index_creation_string [DATASOURCE_TYPE (datasource_aliases)]

Параметры:

index_name

Имя создаваемого индекса.

index_creation_string

Текст команды на создание индекса. Передается в СУБД в неизменном виде.

Запрос не учитывает логическую БД, используемую по умолчанию.
Укажите имя целевой таблицы в формате <имя_схемы_СУБД>.<имя_таблицы>; имя схемы по умолчанию можно не указывать.

Ключевое слово DATASOURCE_TYPE

Ключевое слово DATASOURCE_TYPE задает список имен датасорсов datasource_aliases, в которых создается индекс. Элементы списка перечисляются через запятую, каждый из них указывается в одинарных кавычках (например, 'adp', 'adp2').

Если ключевое слово не указано, система пытается создать индекс во всех доступных датасорсах окружения.

Варианты ответа

В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

При ошибке создания индекса в любом из датасорсов в ответе возвращается ошибка, даже если в остальных датасорсах индекс был успешно создан.

Примеры

Создание индекса во всех датасорсах

Создание индекса для физических таблиц sales_actual, связанных с логической таблицей sales, во всех датасорсах:

CREATE INDEX transaction_date ON marketing.sales_actual (transaction_date)

Создание индекса в указанном датасорсе

Создание индекса для standalone-таблицы marketing.agreements в датасорсе adp:

CREATE INDEX agreement_number ON marketing.agreements (number)
DATASOURCE_TYPE ('adp')

Создание индекса для физической таблицы table1_actual, связанной с логической таблицей table1, в датасорсе adp2:

CREATE INDEX index1 ON test_marketing.table1_actual (column1)
DATASOURCE_TYPE ('adp2')

Создание индекса с указанием метода

Создание индекса для прокси-таблицы payments_proxy в датасорсе adp с методом HASH:

CREATE INDEX agreement_id ON marketing.payments_proxy USING HASH (agreement_id)
DATASOURCE_TYPE ('adp')

Создание индекса для физической таблицы sales_actual в датасорсе adp для ускорения текстового поиска по столбцу description:

CREATE INDEX fts_idx_for_sales ON marketing.sales_actual USING gin (to_tsvector('russian', description)) 
DATASOURCE_TYPE ('adp')